Baseflow / ExoPlayerXamarin

Xamarin bindings library for the Google ExoPlayer library
https://baseflow.com
MIT License
152 stars 67 forks source link
android baseflow c-sharp exoplayer google-exoplayer media mediaplayer nuget xamarin

ExoPlayer Plugin for Xamarin

license Build status NuGet NuGet Pre Release GitHub tag MyGet

Xamarin bindings library for the Google ExoPlayer library.

ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet. ExoPlayer supports features not currently supported by Android’s MediaPlayer API, including DASH and SmoothStreaming adaptive playbacks. Unlike the MediaPlayer API, ExoPlayer is easy to customize and extend, and can be updated through Play Store application updates.

Support

Documentation

Using ExoPlayer

The ExoPlayer plugin is available on Nuget.

    var HttpDataSourceFactory = new DefaultHttpDataSource.Factory().SetAllowCrossProtocolRedirects(true);
    var MainDataSource = new ProgressiveMediaSource.Factory(HttpDataSourceFactory);
    var Exoplayer = new IExoPlayer.Builder(Context).SetMediaSourceFactory(MainDataSource).Build();

    MediaItem mediaItem = MediaItem.FromUri(Android.Net.Uri.Parse("https://ia800806.us.archive.org/15/items/Mp3Playlist_555/AaronNeville-CrazyLove.mp3"));

    Exoplayer.AddMediaItem(mediaItem);
    Exoplayer.Prepare();
    Exoplayer.PlayWhenReady = true;

See the Exoplayer.Droid sample app for further details.

IMPORTANT: Exoplayer 2.9.0 and up requires Visual Studio 2019 with R8 and D8. You also need to enable AAPT2. Readmore at: https://devblogs.microsoft.com/xamarin/androids-d8-dexer-and-r8-shrinker/

Thanks to

License