baseflow/xamarinmediamanager

MediaManager - Cross platform media plugin for Xamarin and Windows

Designed to be simple and easy to use

MediaManager - Cross platform media plugin for Xamarin and Windows

  • Designed to be simple and easy to use
  • Native playback of media files from remote http(s), embedded and local sources
  • Native media notifications and remote controls
  • Queue and playback management by default
  • Playback status (Playing, Buffering, Loading, Paused, Progress)
  • Events for media handling to hook into

Status:

Support

  • Feel free to open an issue. Make sure to use one of the templates!
  • Commercial support is available. Integration with your app or services, samples, feature request, etc. Email: [email protected]
  • Powered by: baseflow.com

Wiki

More documenatation and information is available on the Wiki

Blogs

  • Xamarin Blog
  • Baseflow Blog

Installation

Add the NuGet package to all the projects you want to use it in.

  • In Visual Studio - Tools > NuGet Package Manager > Manage Packages for Solution
  • Select the Browse tab, search for MediaManager
  • Select Plugin.MediaManager
  • Install into each project within your solution

Platform Support

Platform Supported Version Player
.Net Standard Yes 2.0+ MediaManager
Xamarin.Forms Yes 3.2+ MediaManager
Xamarin.Android Yes API 16+ ExoPlayer
Xamarin.iOS Yes iOS 10+ AVPlayer
Xamarin.Mac Yes 3.0+ AVPlayer
Xamarin.tvOS Yes 10.0+ AVPlayer
Tizen Yes 4.0+ MediaPlayer
Windows 10 UWP Yes 10+ MediaPlayer
Windows WPF (.NET Framework) Yes 4.7.2+ MediaPlayer
Windows WPF (.NET Core) Yes 3.1+ MediaPlayer

Usage

Call MediaManager.Current from any .Net library or Xamarin project to gain access to APIs.

IMPORTANT: Initialize plugin

Make sure to call Init() in all the native platforms on startup of your app.

Optionally provide the Activity on Android. This will also be used to bind the Android Service and will be used as Intent to launch from a notification.

When tapping the notification, it will launch your activity with an intent. In most cases, you probably want to set LaunchMode on your Activity to SingleTop. That should bring your app back into focus when tapped. You can read more about it here

If you want to handle when the app is opened via a notification tap, you can override OnNewIntent on your activity:

Disposing

The player can be disposed via CrossMediaManager.Current.Dispose(). Make sure to call CrossMediaManager.Current.Init() if you used dispose before playing another media file.

Play a single media item

Play multiple media items

Other play possibilities

  • Playing from a File can be done for example by using the File and Directory api's. You download a file from the internet and save it somewhere using these .NET api's.
  • When playing from Assembly you need to add a media file to a assembly and set the build action to Embedded resource.
  • When playing from a Resource you should add your media file for example to the Assets or raw folder on Android, and the Resources folder on iOS.

For example:

Control the player

Control the Queue

Extensions:

Retrieve and set information

Extensions:

Properties available on CrossMediaManager.Current.MediaPlayer.*

Hook into events

Retrieve metadata for media

Depending on the platform and the media item metadata will be extracted from ID3 data in the file.

Since the metadata might not be available immediately you can subscribe for updates like this:

Alternatively you could also use the PropertyChanged event to see updates to the metadata.

You can also get a single frame from a video:

Add Video Player to the UI

The video view will automatically be attached to the player. If you have multiple video views and you want to hook it up yourself do:

After that you can manually add the video view like this:

For android we need a VideoView in the axml layout.

Then find the view in code:

For iOS, MacOS or tvOS we need to add a VideoView either in code, or in a Xib or Storyboard.

Then for all platforms we have to add the player view to the MediaPlayer

Play a non standard format like HLS, Dash or SS

MediaManager will try to make a guess which media type or format is used. Sometimes this will not be picked up or be wrong, but you can enforce it by setting it yourself like this:

By enforcing it there is still no guarantee that the native system actually is able to play the item.

Platform specific features

Feature Android iOS, Mac, tvOS UWP Tizen WPF
Audio
Video
Queue
Notifications
Volume
Media Extraction
HLS
DASH
SmoothStreaming
ChromeCast
Airplay
Xamarin.Forms

You can also directly access the native platform implementation if you need it!

Xamarin.Forms

Adding a VideoView to a Page in Forms is easy as this:

Your Xamarin.Forms page could look like this:

You can even use the normal Play(object) method and not set source. When you navigate to the view that contains the VideoView, the player will automatically attach to the view.

If you want a Page that contains a player you can open the VideoPage.

Reactive extensions

Add the Reactive NuGet package to all the projects you want to use it in.

Usage:

FFmpegMediaMetadataRetriever on Android

If you want to use FFmpegMediaMetadataRetriever on Android to extract the metadata you can set to use this extension like this:

Intercept share requests from the native platform or other apps

Android:

IMPORTANT

Android:

  • This library will automatically request the following permissions: AccessWifiState, AccessNetworkState, Internet, ForegroundService and WakeLock. You do not need to add them to your AndroidManifest.
  • Your app must target Android SDK v28 or higher
  • This library uses ExoPlayer for video playback. This requires that you enable the following
  • Dex tool to D8: <AndroidDexTool>d8</AndroidDexTool>
  • Optional enable R8 Linker to make code smaller: <AndroidLinkTool>r8</AndroidLinkTool>
  • Aapt2 build tools: <AndroidUseAapt2>true</AndroidUseAapt2>
  • Disable multi-dex when using D8 and R8 with AAPT2. Your code should be small enough with those.

iOS:

  • In order for the audio to contiunue to play in the background you have to add the 'Audio, Airplay and Picture in Picture Background mode' and 'Background fetch' to your Info.plist

  • If you are playing audio from a http resource you have to take care of ATS. Optionally you can disable this for playing media. Add the following to your info.plist:

If you want to disable more you could add: NSAllowsLocalNetworking or even NSAllowsArbitraryLoads to disable all checks.

  • If you want to display a artwork/cover that is embedded into an MP3 file, make sure that you use ID3 v2.3 (not v2.4).

UWP:

  • In the Package.appxmanifest under capabilities you need to select: "Background Media Playback", "Internet"
  • Optionally add "Music Library" and "Videos Library" as well if you use that

Tizen:

  • You must request http://tizen.org/privilege/internet, http://tizen.org/privilege/mediastorage, and http://tizen.org/privilege/externalstorage privileges

Building the source code

  • On Windows you need Visual Studio 2019 with the latest Xamarin, .NET Core, UWP and Windows 10 SDK installed.
  • On Visual Studio for Mac 2019 multi-target is not supported. Therefor you need to compile from command line on a Mac. Simple go to the folder where the source code is and run: msbuild MediaManager.sln /t:rebuild to make a release build run: msbuild MediaManager.sln /t:rebuild /p:Configuration=Release. To restore your nuget packages run: msbuild MediaManager.sln /t:restore.
Issues

Quick list of the latest Issues we found

rhedgpeth

rhedgpeth

Icon For Comments0

🐛 Bug Report

Currently have an app that will crash when connecting a known bluetooth device. The app itself targets Android 12, and is using Plugin.MediaManager.Form v1.1.1. It also seems to be occurring almost exclusively on Google Pixel devices, if that's at all helpful.

It's unclear to me what is causing the crash, but I suspect, based on some of the logs below, that it might have something to do with the targeted Android version (possibly related to this feature request?) Or maybe it's environmental.. not sure.

Expected behavior

The app would not crash.

Reproduction steps

Open app, background to connect a bluetooth device.

Configuration

Version: 1.1.1

Platform:

  • :iphone: iOS
  • :robot: Android
  • :checkered_flag: WPF
  • :earth_americas: UWP
  • :apple: MacOS
  • :tv: tvOS
  • :monkey: Xamarin.Forms
onlinespec

onlinespec

Icon For Comments5

💬 Questions and Help

Please I need your help. This great tool works for me in IOS and ANDROID. I just notice that if I want to play an mp3 file using from URL file, it plays very well from ANDROID 8 downwards. But it just does not play from Android 9.0 upward.

BUT IT PLAYS ON A LOCAL FILE

this is my code IMediaItem mediaItem = await CrossMediaManager.Current.Play("#404 Fear Here (Faith Feast) Day 1.mp3"); No exception at all

Thank you

For questions or help we recommend checking:

  • The Xamarin tag in Stack Overflow
  • The General slack channel in the Xamarin Slack
  • Ask your question in the Xamarin Forums
sb111111111

sb111111111

Icon For Comments0

🐛 Bug Report

When trying to retrieve the total duration of audio file it is returning 00:00:00

Expected behaviour

Duration of the audio file to be returned

Reproduction steps

var mediaItem = await CrossMediaManager.Current.Play(audioFile); var duration = mediaItem.Duration; await DisplayAlert("info", duration.ToString(), "OK");

Configuration

Version: 1.1.1

Platform: Xamarin.Forms

tungox6

tungox6

Icon For Comments1

🐛 Bug Report

My first try with MediaManager: Works well with Android. On UWP, I got NotImplementedException when calling CrossMediaManager.Current.Init()

Expected behavior

Reproduction steps

Configuration

Version: 1.1.1

Platform: (Xamarin UWP Project)

  • Xamarin.Forms: 5.0.0.2478
  • Xamarin.Essentials: 1.7.3
  • Microsoft.NETCore.UniversalWindowsPlatform: 6.2.14
srknskr

srknskr

Icon For Comments1

Repeat Mode works fine on Android. There is no space between sounds. But on iOS it plays with gapless.

Is there any way to loop through gapless audio?

MediaManager.Playback.RepeatMode.All

10acre

10acre

Icon For Comments4

I am trying to remove the slider from the notification generated by the CrossMediaManager in Xamarin. I want to keep the Play/Pause buttons but I really want the slider to be removed. I tried using CrossMediaManager.Current.Notification.ShowNavigationControls = false; but it doesn't do anything. I'm not sure that is the right property to set but it doesn't look like it does anything anyway. I have tried moving it around in the code to find the right place but still nothing. I am testing on Android now but will also test on iOS. Any help would be appreciated.

Plugin.MediaManager - v 1.1.1 Android target 11

lobons

lobons

Icon For Comments4

Hi @martijn00 after updating to version 1.1.1 I'm able to play the video on Android 12 only with a "trick" on debug mode (can't find a way for release) : Set a breakpoint and exploding "CrossMediaManager.Current.*" to look the properties , at that moment if I click on "continue" the streaming starts. There's no other way that worked for me on Android 12; the same code that doesn't work with 12 is working great with Android 11,10 and 9 and also with iOS.

I attach a short video to show what I mean with "trick"... https://user-images.githubusercontent.com/52449396/167838864-0ad037dc-99f5-41b0-a845-1d876cf9cb05.mp4

Anyone can help with this??

Originally posted by @lobons in https://github.com/Baseflow/XamarinMediaManager/issues/845#issuecomment-1123632231

Anda-ai

Anda-ai

Icon For Comments0

I set autoattachmentvideoview false: CrossMediaManager.Current.MediaPlayer.AutoAttachVideoView = false;

so that I can set specific VideoView CrossMediaManager.Current.MediaPlayer.VideoView = playerView;

But I get the error (MediaManager.Video.IVideoView cannot be converted to VideoView):

Cannot implicitly convert type 'MediaManager.Forms.VideoView' to 'MediaManager.Video.IVideoView'. An explicit conversion exists (are you missing a cast?)

Brian840718

Brian840718

Icon For Comments0

🐛 Bug Report

Playing m3u8 from local file in IOS faild

Expected behavior

Playing m3u8 file like Android

Reproduction steps

Configuration

Version: 1.x

Platform:

  • :iphone: iOS
  • :robot: Android
  • :checkered_flag: WPF
  • :earth_americas: UWP
  • :apple: MacOS
  • :tv: tvOS
  • :monkey: Xamarin.Forms
sschaub

sschaub

Icon For Comments2

🐛 Bug Report

Building XamarinMediaManager solution in Visual Studio 2022 fails.

Expected behavior

Build should succeed.

Reproduction steps

  1. Clone XamarinMediaManager from repo
  2. Open XamarinMediaManager/MediaManager.sln in Visual Studio 2022. All projects load successfully.
  3. Choose Build > Build Solution

Configuration

Version: 1.1

Platform:

  • :iphone: iOS
  • :robot: Android
  • :checkered_flag: WPF
  • :earth_americas: UWP
  • :apple: MacOS
  • :tv: tvOS
  • :monkey: Xamarin.Forms

Visual Studio 2022 version 17.1

See build log: buildfailure.txt

BenDTU

BenDTU

Icon For Comments3

🐛 Bug Report

Running the latest version of XamarinMediaManager, loading a queue and playing a song in the queue other than the first one is not behaving as expected. Calling 'PlayQueueItem' changes the 'current' item but it does not play. Calling 'play' later causes the current item to reset back to the first item in the queue.

Expected behavior

I would assume 'PlayQueueItem' would immediately start playing the song in the location in the queue specified.

Reproduction steps

This will cause the current item to change but nothing will play. Calling CrossMediaManager.Current.Play() later will reset the queue.

Configuration

Xamarin.Forms 5.0.0.2337 Xamarin Essentials 1.7.1 Plugin.MediaManager 1.1.0

Version: 1.x

Platform:

  • :iphone: iOS
  • :robot: Android
  • :checkered_flag: WPF
  • :earth_americas: UWP
  • :apple: MacOS
  • :tv: tvOS
  • :monkey: Xamarin.Forms
Hobbit7

Hobbit7

Icon For Comments5

I have no sound when I open my application right after downloading and installing it from Google Play Console internal testing. I use a Nokia 7 Plus phone with Android 10. But when I quit my application and reopen it then the sound works normally. Why is there no sound when I open the application the very first time on my Nokia 7 Plus? I only call CrossMediaManager.Current.Init(this); once in OnCreate located in my Activity1.cs.

` protected override void OnCreate(Bundle bundle) { base.SetTheme(Resource.Style.MainTheme); base.OnCreate(bundle); Xamarin.Forms.Forms.Init(this, bundle); Xamarin.Essentials.Platform.Init(this, bundle); CrossMediaManager.Current.Init(this);

if (Intent.Extras != null) { foreach (var key in Intent.Extras.KeySet()) { var value = Intent.Extras.GetString(key); Log.Debug(TAG, "Key: {0} Value: {1}", key, value); } }

DisplayMetrics displayMetrics = new DisplayMetrics(); WindowManager.DefaultDisplay.GetRealMetrics(displayMetrics); int w1 = displayMetrics.WidthPixels; int h1 = displayMetrics.HeightPixels; _game = new Game1(w1, h1); _game.Run(); }`

In addition, I play my songs like this(in another class):

if (Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.Android) { string androidfilename = "#404" + songfilename; await CrossMediaManager.Current.Play(androidfilename); }

I use nuget package Plugin.MediaManager (1.1.0).

Edit: I found out that TimeSpan CurrentPosition = CrossMediaManager.Current.Position; stays always at 00:00:00 when there is no sound. In addition, MediaManager.Player.MediaPlayerState state = CrossMediaManager.Current.State; is always "Stopped", it never changes to "Play". I don't understand why the song is not playing when I call await CrossMediaManager.Current.Play(androidfilename); or await CrossMediaManager.Current.Play("audioUrl");.

Does someone have the same issue on Android? When will this issue be fixed?

Edit: I have tested the same application on 2 other Android devices and the sound works normally right after downloading and installing it from Google Play Console internal testing on the following 2 devices: On a Samsung Galaxy Tab S7 FE the sound works normally on Android 11 and Android 12. On an old Samsung Galaxy Note 10.1 2014 Edition the sound works normally on Android 5.1.1.

I only have the sound problem on my Nokia 7 Plus phone with Android 10.

developerfiveneosoftware

developerfiveneosoftware

Icon For Comments2

🐛 Bug Report

Unable to play video full screen with xamarin shell project on ios 15.3.

This looks very similar to a bug that was previously raised. https://github.com/Baseflow/XamarinMediaManager/issues/629

I am using Xamarin forms.

I have the Nav bar visible.

I am attempting to play a HLS video. This works fine initially and the controls show/respond. If I click the full screen option the video does not render and the an error in the logs appear.

Warning: <MediaManager_Platforms_Ios_Video_PlayerViewController: 0x7f930c93de00> is trying to enter full screen, but is not in its view's window's view controller hierarchy. This results in undefined behavior..

Expected behavior

The video should open in full screen and play.

Reproduction steps

Create a Shell tab project within xamarin forms

PAGE XML

Page Code Behind

This is my first time raising something here. Let me know if I have missed anything or need to add more detail etc.

Configuration

Plugin.MediaManger.Forms 1.1 Xamarn.Forms 5.0.0.7757 Xamairn.Essentials 1.7.1

Platform:

  • [ x] :iphone: iOS
  • :robot: Android
  • :checkered_flag: WPF
  • :earth_americas: UWP
  • :apple: MacOS
  • :tv: tvOS
  • :monkey: Xamarin.Forms
Hobbit7

Hobbit7

Icon For Comments0

My application crashed with this exception on my Android phone: MediaQueue.get_Item (System.Int32 index) Z:\Documents\OpenSource\XamarinMediaManager\MediaManager\Queue\MediaQueue.cs, line 137 System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index Stack traces: List1[T].get_Item (System.Int32 index) /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/Common/src/CoreLib/System/Collections/Generic/List.cs:161 Collection1[T].get_Item (System.Int32 index) /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/Common/src/CoreLib/System/Collections/ObjectModel/Collection.cs:46 MediaQueue.get_Item (System.Int32 index) Z:\Documents\OpenSource\XamarinMediaManager\MediaManager\Queue\MediaQueue.cs:137 Enumerable.ElementAtOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Int32 index) /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/System.Linq/src/System/Linq/ElementAt.cs:71 MediaDescriptionAdapter.GetCurrentContentTitleFormatted (Com.Google.Android.Exoplayer2.IPlayer player) Z:\Documents\OpenSource\XamarinMediaManager\MediaManager\Platforms\Android\Media\MediaDescriptionAdapter.cs:66 PlayerNotificationManager+IMediaDescriptionAdapterInvoker.n_GetCurrentContentTitle_Lcom_google_android_exoplayer2_Player_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_p0) C:\Users\mhvdi\Documents\OpenSource\ExoPlayerXamarin\ExoPlayer.UI\obj\Release\monoandroid10.0\generated\src\Com.Google.Android.Exoplayer2.UI.PlayerNotificationManager.cs:440 (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.65(intptr,intptr,intptr)`

I use Plugin.MediaManager nuget package 1.1.0 on Android and Visual Studio for Mac.

Hobbit7

Hobbit7

Icon For Comments1

Sometimes my app crashes and I get this message: TimeSpan does not accept floating point Not-a-Number values. TimeSpan.Interval (System.Double value, System.Int32 scale) /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/src/Xamarin.iOS/external/corefx/src/Common/src/CoreLib/System/TimeSpan.cs, line 249

I use Plugin.MediaManager nuget package 1.1.0 on iOS and Visual Studio for Mac.

vivi79

vivi79

Icon For Comments0

Grettings to all,

first to thank you for making huge effort in making mediamanager what it is today and i would like to ask is there planned support for VTT subtitles and also adding additional video tracks?

tallmanBS

tallmanBS

Icon For Comments0

I'm using in forms with

and getting in the Device log

and image comes back null. Some videos work and I get an image, and some I get this null. IN all cases the videos actually play, it just doesn't get a frame. I've tried different timespans, and not sure what else to do.

Any help appreciated! Thanks for this tool!

mjmeans

mjmeans

Icon For Comments0

How do I get the sample to quickly run in the Android emulator in Windows 10 Pro using VS Pro 2019 v16.11.4?

So I open the github.com site to the main page, then I click the green button to open in visual studio instead of clone or fork. Visual studio 2019 opens and creates a local copy. I then open the solution from the local repo within VS. Then I set the ElementPlayer.Forms.Android project as the startup project and rebuild it. Then I try to deploy to emulator "Tablet M-DPI 7in Q 10.0 - API 29 (Android 10.0 - API 29). I get deploy failed. That emulator works fine with another project I'm working on.

========== Build: 4 succeeded, 0 failed, 2 up-to-date, 0 skipped ========== ========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========

chriskooken

chriskooken

Icon For Comments0

When I pause a live streamed source, there is no way I can find to jump back to live. I tried this, but it doesn't work:

await CrossMediaManager.Current.SeekTo(TimeSpan.FromHours(9999));

Is there a method i'm missing to jump to the live marker?

jimdog1001

jimdog1001

Icon For Comments0

🐛 Bug Report

im using xamarin forms and testing on Android. I have 4 buttons and each time i click the button to play a song, i call the media player to play it. I also have an event to listen for when the song ends, which is working as expected. What is not working correctly is that sometimes, when switching songs, the event gets triggered even though a media item hasn't finished.

Expected behavior

should only fire when the song ends

Reproduction steps

have buttons that play different songs, i have 4 in mine. Set up and mediaItemFinished event and have it do something when the song ends. Start switching songs by clicking on different buttons and notice that the mediaItemFinshed event is executing code when it shouldnt be.

Configuration

Version: 1.x

Platform:

  • :iphone: iOS
  • :robot: Android
  • :checkered_flag: WPF
  • :earth_americas: UWP
  • :apple: MacOS
  • :tv: tvOS
  • :monkey: Xamarin.Forms
lucaraccis

lucaraccis

Icon For Comments0

💬 Questions and Help

Hi, I'm trying to use the MediaItemChanged event but it never fire. I init the engine inside AppDelegate.DidFinishLaunching and bind the event handler in main ViewController.ViewDidLoad So I load local mp3 files in a button click. But the event handler never fire. Where I go wrong, or is a know bug? I'm working on a Xamarin.Mac App, Plugin.XamarinMediaManager 1.0.9 VS for Mac 8.10.9 Xamarin.Forms 5.0.0.2125

hamidish

hamidish

Icon For Comments0

hi how can play binary or blob that gives from sqlite with mediamanger? and is mediamanager show spectrum effect audio? thx

SebulbaSe

SebulbaSe

Icon For Comments1

Hi

Just wonder if there is any plans to update the pluging to be compatible with the new .NET Maui release?

Thanks Magnus

daryle2000

daryle2000

Icon For Comments0

🐛 Bug Report

Just tested MediaManager on playing youtube videos and it's great. I use another component called YoutubeExplode which I can query the media manifest using youtube id. The media manifest can extract the Video and Audio only URL which I pass to CrossMediaManager.Current.Play() to play. Video is ok but when playing audio only (MP4), value of duration is twice. I tested Xamarin iOS on iPhone, simulator and device.

Expected behavior

Audio only should have same duration as Video.

Reproduction steps

YoutubeClient client = new YoutubeClient(); // YoutubeExplode client

// You can use the youtube ids below // jgyl_LBdcxo // VbD_kBJc_gI // iSLwVaebsJg // 7m6_WcBYFIY

StreamManifest manifest = await client.Videos.Streams.GetManifestAsync (<YOUTUBE_ID>); var muxed = manifest .GetMuxedStreams() .OrderByDescending(v => v.VideoResolution.Height) .ToList() .FirstOrDefault();

string videoUrl = muxed != null ? muxed.Url : "";

var audio = manifest .GetAudioOnlyStreams() .Where(a => a.Container.Name.ToUpper() == "MP4") .OrderByDescending(a => a.Bitrate.BitsPerSecond) .ToList() .FirstOrDefault();

string audioUrl = audio != null ? audio.Url : "";

await CrossMediaManager.Current.Play(videoUrl); // Duration value here is correct await CrossMediaManager.Current.Play(audioUrl); // Duration value here is doubled/twice

Configuration

Xamarin latest iOS, iPhone

Version: 1.x

Platform:

  • [*] :iphone: iOS
  • :robot: Android
  • :checkered_flag: WPF
  • :earth_americas: UWP
  • :apple: MacOS
  • :tv: tvOS
  • :monkey: Xamarin.Forms
eramrit78

eramrit78

Icon For Comments1

🐛 Bug Report

I am trying to play m3u8 URL on ios but if failed. i am using latest xamarin form 5.x update 2083.It works well on android.

Expected behavior

It should play on IOS

Reproduction steps

Configuration

Version: 1.x 1.09

Platform:

  • :iphone: iOS Screenshot (12)

  • :robot: Android

  • :monkey: Xamarin.Forms

thanoue

thanoue

Icon For Comments1

🐛 Bug Report

After I install XF.material (your great plugin), the IOS app can't play any media file.

Expected behavior

Can create IMediaItem from the internet URL or the local file path.

Reproduction steps

  1. Install XamarinMediaManager to Xamarin forms solution, included .net Standard, Android and IOS projects.
  2. Play media file by creating an ImediaItem and call Play(item) method.
  3. Install XF.Material to apply some UI controls.
  4. Create IMediaItem on IOS by HTTPS URL or local file path, to put to queue then play.
  5. Created Item has duration = 0, And the MediaManager Can't play the item. I Don't know why, the Android app is still fine.

Configuration

Version: lastest

Platform:

  • :iphone: iOS
  • :robot: Android
  • :checkered_flag: WPF
  • :earth_americas: UWP
  • :apple: MacOS
  • :tv: tvOS
  • :monkey: Xamarin.Forms
nacompllo

nacompllo

Icon For Comments0

🐛 Bug Report

When I add the video player with a custom width and height on a page the video aspect ratio does not fit correctly to the indicated size causing the video controls to hide, this only happens in UWP.

Expected behavior

In case of using a custom width and height, the video player in UWP must correctly adjust the aspect ratio of the video without losing the video controls.

Reproduction steps

I have uploaded a repository where you can see the problem: https://github.com/nacompllo/MediaManagerUWPIssue

In UWP the aspect ratio of the video is not correctly adjusted to the indicated size and the video controls are lost.

MediaManagerUWPIssue UWP 31_07_2021 16_29_45

Configuration

Plugin.MediaManager.Forms 1.0.9 Xamarin.Forms 5.0.0.2083

Platform:

  • :iphone: iOS
  • :robot: Android
  • :checkered_flag: WPF
  • :earth_americas: UWP
  • :apple: MacOS
  • :tv: tvOS
  • :monkey: Xamarin.Forms
Versions

Quick list of the latest released versions

1.1.0 - Jan 31, 2022

1.0.8 - Jan 06, 2021

1.0.5 - Dec 08, 2020

1.0.4 - Oct 21, 2020

1.0.3 - Sep 04, 2020

0.9.9 - Aug 11, 2020

0.9.7 - Mar 04, 2020

0.9.4 - Jan 09, 2020

0.9.0 - Dec 12, 2019

0.8.17 - Oct 17, 2019

0.8.13 - Oct 14, 2019

0.8.12 - Oct 08, 2019

0.8.10 - Sep 25, 2019

0.8.9 - Sep 09, 2019

0.8.5 - Aug 06, 2019

0.8.4 - Aug 06, 2019

0.8.1 - Aug 04, 2019

0.7.9 - Aug 01, 2019

0.7.7 - Jul 27, 2019

0.7.6 - Jul 26, 2019

0.7.5 - Jul 26, 2019

0.7.4 - Jul 23, 2019

0.6.9 - Jul 02, 2019

0.6.8 - Jul 01, 2019

0.6.3 - Jun 03, 2019

0.5.9 - May 19, 2019

0.5.1 - Apr 13, 2019

0.5.0 - Apr 12, 2019

0.4.4 - Aug 22, 2017

0.4.0 - Mar 17, 2017

Library Stats (Aug 27, 2022)

Subscribers: 52
Stars: 734
Forks: 291
Issues: 136

XamEffects - UI effects for Xamarin

You have to install this nuget package to Xamarin

XamEffects - UI effects for Xamarin

This NuGet package helps with static

Minifies HTML including embedded script and style blocks

This NuGet package helps with static
Grab the latest NuGet package and install in your solution:

Color picker for Xamarin

Available on NuGet: galadril for his SimpleColorPicker

Color picker for Xamarin

This repo contains nuget

org's implementation of the NuGet Gallery Issue Tracker

This repo contains nuget

Search for Nuget packages using the

Search including prerelease

Search for Nuget packages using the

Nuget: Install-Package PublicHoliday

Orders and deliveries, data transfers, and other processes can often only be made on business working days

Nuget: Install-Package PublicHoliday
NuGet packages available on the releases page and on www
NuGet packages available on the releases page and on www

Nuget Package Hltv is a C# api for getting Hltv info straight from hltv

Hltv is a C# api for getting Hltv info straight from hltv

Nuget Package Hltv is a C# api for getting Hltv info straight from hltv

A NuGet server with linux-first approach

NuGet server with linux-first approach

A NuGet server with linux-first approach