Giter VIP home page Giter VIP logo

Comments (5)

raphrel avatar raphrel commented on May 26, 2024

As I think you did, I read apple article:
https://developer.apple.com/documentation/avfoundation/media_playback_and_selection/selecting_subtitles_and_alternative_audio_tracks

I think we could work with ModernAVPlayer Plugin System (PlayerPlugin):

  • Media is loaded, plugin system call: func didLoad(media: PlayerMedia, duration: Double?)
  • I can add a AVPlayerItem (from custom protocol) param to this method
  • Then in the plugin, you can download group and options
  • Then use the AVPlayerItem to select group and options previously download

In this case, I just have to provide in didLoad player plugin method the AVPlayerItem previously loaded.

For information, add PlayerPlugin is done on ModernAVPlayer init

what do you think ?

from modernavplayer.

yaroslavlvov avatar yaroslavlvov commented on May 26, 2024

As I understand I can cast PlayerMedia to PlayerMediaItem in this method, right? Not quite get why there are two separate, however, plugin system will work for me, I was just thinking that this feature could be useful for others potentially and worth implementing internally

from modernavplayer.

raphrel avatar raphrel commented on May 26, 2024

ok, I just created a new branch -> you can now use it to access AVPlayerItem and AVAsset when item is loaded and call all methods suggested by Apple

I suggest you create a new GitHub open source repository to create a swift package for the plugin. (can be access by anybody, to use or update it)

  • Create a new Swift Package Project
  • Create your plugin code
  • Use ModernAVPlayer repo or another one to create iOS example to test it
    ** Inject your plugin in ModernAVPlayer init
    ** Access to AVPlayerItem from didLoaded delegate method
    ** Start async task to download group and options
    ** Choose options you need (you will have iOS example in the project)
    ** Apply from AVPlayerItem select method

If you have any question, please ask !

PS: do not pay attention to unit tests, I had to adjust them...

from modernavplayer.

raphrel avatar raphrel commented on May 26, 2024

HI @yaroslavlvov ,

can you share a url of a media with subtitle or alternative audio tracks ?

I may try to help if I have some time

from modernavplayer.

yaroslavlvov avatar yaroslavlvov commented on May 26, 2024

@raphrel the one that you used for demo should have both

from modernavplayer.

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.