Baseflow / Baseflow/XamarinMediaManager

Make it easier to replace underlying media player with another media Player

Open
#801 1 comment 1 reaction 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.