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;
        }
Beispiel #5
0
        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;
            }
        }
Beispiel #7
0
        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;
 }
Beispiel #10
0
 public async Task Pause()
 {
     VideoViewCanvas.Pause();
     Status = MediaPlayerStatus.Paused;
     await Task.CompletedTask;
 }
 public async Task Stop()
 {
     VideoViewCanvas.StopPlayback();
 }