Baseflow / Baseflow/XamarinMediaManager
Make it easier to replace underlying media player with another media Player
- Dominant language
- C#
- Stars
- 763
- Forks
- 299
- PR merge metrics
- No merged PRs in 30d
Description
## 🚀 Feature Requests
I was using XamarinMediaManager in one project and recently came across limitations of iOS' AVPlayer.
So, I had to use another media player more powerful to replace it.
So, I opted for VLC, and since XamarinMediaManager makes a great job at facilitating the use of the underlying player, I decided to integrate combine it with VLC iOS bindings.
But integrating this external player could be made easier in my opinion.
[Here is a demo of the integration of VLC into Xamarin media manager I made.](https://github.com/DamienDoumer/VLCCrossMediaManager/tree/master/VLCBindings.iOS/VLCMediaManager)
I need to precise that;
I think the overall architecture of Xamarin Media Manager is great, I might be missing some important points and I might be wrong, So, I'll be glad that someone points me in the right direction if they think what I'm requesting is wrong.
I only implemented a combination of VLC and XamarinMediaManager on iOS, so I'll point out issues I had for iOS only
### Contextualize the feature
Here are some areas that I think could be ameliorated to make the integration of external players better.
1- in the MediaManagerBase class, Event handlers like `OnMediaItemFinished, OnPositionChanged, etc...` Are marked as internal, so inheriting media managers found outside of the namespace can't fire these events unless they shadow them.
2- In the `NotificationManager` class, the `MediaManager` Property of this class is marked as protected only, and its value is always tight to `CrossMediaManager.Apple` This makes it impossible for inheriting members to define a custom Media Manager.
### Platforms affected (mark all that apply)
- [*] :iphone: iOS
- [ ] :robot: Android
- [ ] :checkered_flag: WPF
- [ ] :earth_americas: UWP
- [ ] :apple: MacOS
- [ ] :tv: tvOS
- [ ] :monkey: Xamarin.Forms
Contributor guide
Research direction
Read MediaManagerBase and NotificationManager, then compare their event visibility and MediaManager wiring with the linked VLC iOS integration demo. Done means an external iOS media manager can use the relevant event handlers and define its own media manager without depending on CrossMediaManager.Apple.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- mobile-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100