Giter Club home page Giter Club logo

Comments (6)

xuelian-bai avatar xuelian-bai commented on June 18, 2024

I don't think it's supported now, which API do you want from Tizen.NET.TV?

from plugins.

ppaneksamsung avatar ppaneksamsung commented on June 18, 2024

Tizen.TV.Multimedia.ESPlayer, Tizen.TV.Security.DrmDecrypt and maybe others. Those APIs are thin wrappers around CAPI so we could theoretically skip the Tizen.NET layer and call CAPI directly from C++, but I'm not sure whether the owners want to reveal the underlying CAPI.

from plugins.

xuelian-bai avatar xuelian-bai commented on June 18, 2024

currently we use the method to wrap CAPI into Flutter plugins, it's the better way than wrap upon C#.
we have already wrapped video player which is based on media player, but for ES player, we tried, but since it can only display ES data we didn't implement all.

from plugins.

ppaneksamsung avatar ppaneksamsung commented on June 18, 2024

Where can I find this 'video player based on media player'? Is it released?

I agree that ESPlayer is a little bit tricky and low level. We consider to implement a Video Player demo application (something like https://github.com/SamsungDForum/JuvoPlayer/tree/master/XamarinPlayer/XamarinPlayer.Tizen.TV) in flutter and looking for a player API.

from plugins.

swift-kim avatar swift-kim commented on June 18, 2024

As Xuelian already stated, we strongly recommend to write the plugin code in C++ if the C# code you want to interact with in your Dart code is a wrapper of underlying C APIs.

I think you've already spoken personally with Xuelian, but for who are interested with writing plugins in C# rather than C++ or Dart, I'll explain a little bit more in detail. Flutter plugins for Android are written in Java or Kotlin because the platform's native language is Java. (Both Java and Kotlin code transpiles into JVM byte code so basically they are the same thing from the platform's perspective.) The same applies to iOS whose native language is obj-C (or Swift). In the same manner, Tizen plugins are written in C++ because the platform's native language is C++. Although Tizen supports .NET as one of its app types, C# code requires a .NET runtime to be initialized before it can run, so the situation is different from other platforms.

That being said, writing plugins in C# is still possible, at least in theory, because a Flutter app on Tizen TV technically runs on a .NET VM. (This is only because the native app type is not available for use by 3rd-party developers, so flutter-tizen uses the .NET app type as a workaround.) To enable building C# plugins, we first need to create C# binding for Tizen plugins that implements the binary channel interface between the Dart runtime and the .NET runtime. It would be something like the io.flutter.plugin.common package for Android plugins. And then C# plugins will be able to register their method call handlers to the engine during app launch (which can be done by the flutter-tizen tool by injecting auto-generated code to the C# app host).

Because it will take quite a bit of effort to implement such things, we plan to challenge only if there's a high demand from the users. Thank you for your comment and if you have further questions or comments, please let us know!

from plugins.

ppaneksamsung avatar ppaneksamsung commented on June 18, 2024

@swift-kim thanks for the detailed explanation. Before raising this issue, I took a look on the flutter-tizen internals and noticed that the app type is Tizen .NET. I didn't expect that it is possible to develop a flutter plugin in C# now, but as you said, it should be technically possible.

If needed, we will consider to develop a C++ plugin.

from plugins.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.