Created
April 7, 2020 14:51
-
-
Save mfkl/b128680c1612835fcb0beb786e6cfa10 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
readonly MediaPlayer _mp; | |
const string URL = "https://archive.org/download/ImagineDragons_201410/imagine%20dragons.mp4"; | |
public void Init() | |
{ | |
// create a libvlc media | |
_mp.Media = new Media(_libVLC, URL, Media.FromType.FromLocation); | |
// disable video output, we only need audio | |
_mp.Media.AddOption(":no-video"); | |
// subscribe to libvlc playback events | |
_mp.TimeChanged += TimeChanged; | |
_mp.PositionChanged += PositionChanged; | |
_mp.LengthChanged += LengthChanged; | |
_mp.EndReached += EndReached; | |
_mp.Playing += Playing; | |
_mp.Paused += Paused; | |
} | |
// when the libvlc mediaplayer events fire, publish an event with the MessagingCenter | |
private void PositionChanged(object sender, MediaPlayerPositionChangedEventArgs e) => | |
MessagingCenter.Send(MessengerKeys.App, MessengerKeys.Position, e.Position); | |
private void Paused(object sender, System.EventArgs e) => | |
MessagingCenter.Send(MessengerKeys.App, MessengerKeys.Play, false); | |
private void Playing(object sender, System.EventArgs e) => | |
MessagingCenter.Send(MessengerKeys.App, MessengerKeys.Play, true); | |
private void EndReached(object sender, System.EventArgs e) => | |
MessagingCenter.Send(MessengerKeys.App, MessengerKeys.EndReached); | |
private void LengthChanged(object sender, MediaPlayerLengthChangedEventArgs e) => | |
MessagingCenter.Send(MessengerKeys.App, MessengerKeys.Length, e.Length); | |
private void TimeChanged(object sender, MediaPlayerTimeChangedEventArgs e) => | |
MessagingCenter.Send(MessengerKeys.App, MessengerKeys.Time, e.Time); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment