public async Task Pause() { lastPosition = VideoViewCanvas.CurrentPosition; VideoViewCanvas.Pause(); Status = MediaPlayerStatus.Paused; await Task.CompletedTask; }
public void OnPrepared(MediaPlayer mp) { if (Status == MediaPlayerStatus.Buffering) { VideoViewCanvas.Start(); } Status = MediaPlayerStatus.Playing; }
public async Task Seek(TimeSpan position) { int msec = Convert.ToInt32(position.TotalMilliseconds); VideoViewCanvas.SeekTo(msec); lastPosition = VideoViewCanvas.CurrentPosition; await Task.CompletedTask; }
public void OnPrepared(MediaPlayer mp) { Console.WriteLine($"OnPrepared: {Status}"); _mediaPlayer = mp; if (Status == MediaPlayerStatus.Buffering) { VideoViewCanvas.Start(); } Status = MediaPlayerStatus.Playing; }
public void Init() { if (UseNativeControls) { var mediaController = new MediaController(((VideoView)RenderSurface).Context); mediaController.SetAnchorView(VideoViewCanvas); VideoViewCanvas.SetMediaController(mediaController); } VideoViewCanvas.SetOnCompletionListener(this); VideoViewCanvas.SetOnErrorListener(this); VideoViewCanvas.SetOnPreparedListener(this); VideoViewCanvas.SetOnInfoListener(this); }
public async Task Play(IMediaFile mediaFile = null) { if (!IsReadyRendering) { //Android ViewRenderer might not initialize Control yet return; } if (isPlayerReady == false) { //await Task.Delay(100); Init(); isPlayerReady = true; } if (mediaFile == null || (mediaFile != null && string.IsNullOrEmpty(mediaFile.Url))) { return; } if (mediaFile != null && CurrentFile != mediaFile) { CurrentFile = mediaFile; currentUri = Android.Net.Uri.Parse(mediaFile.Url); VideoViewCanvas.StopPlayback(); //VideoViewCanvas.Suspend(); Status = MediaPlayerStatus.Stopped; } if (Status == MediaPlayerStatus.Paused) { //We are simply paused so just continue VideoViewCanvas.SeekTo(lastPosition); VideoViewCanvas.Start(); Status = MediaPlayerStatus.Playing; return; } try { Status = MediaPlayerStatus.Buffering; VideoViewCanvas.SetVideoURI(currentUri, RequestHeaders); } catch (System.Exception ex) { OnMediaFailed(new MediaFailedEventArgs(ex.Message, ex)); Status = MediaPlayerStatus.Stopped; } }
public async Task Play(IMediaFile mediaFile = null) { if (VideoViewCanvas == null) { await Task.Delay(100); Init(); } if (mediaFile != null) { CurrentFile = mediaFile; currentUri = Android.Net.Uri.Parse(mediaFile.Url); } if (Status == MediaPlayerStatus.Paused) { Status = MediaPlayerStatus.Playing; //We are simply paused so just continue VideoViewCanvas.Resume(); return; } try { Status = MediaPlayerStatus.Buffering; VideoViewCanvas.SetVideoURI(currentUri); VideoViewCanvas.Start(); Status = MediaPlayerStatus.Playing; } catch (Exception ex) { MediaFailed?.Invoke(this, new MediaFailedEventArgs(ex.Message, ex)); Status = MediaPlayerStatus.Stopped; } }
public async Task Stop() { VideoViewCanvas.StopPlayback(); Status = MediaPlayerStatus.Stopped; await Task.CompletedTask; }
public async Task Seek(TimeSpan position) { VideoViewCanvas.SeekTo(Convert.ToInt32(position.TotalMilliseconds)); await Task.CompletedTask; }
public async Task Pause() { VideoViewCanvas.Pause(); Status = MediaPlayerStatus.Paused; await Task.CompletedTask; }
public async Task Stop() { VideoViewCanvas.StopPlayback(); }