private void MusicDialog_Click(object sender, EventArgs e)
 {
     OnPicked?.Invoke(null);
     _audioPlayer.Stop();
     _audioPlayer.Release();
     Dismiss();
 }
Esempio n. 2
0
        //private IMediaSource CreateCacheMediaSource(IMediaSource videoSource, Android.Net.Uri videoUrL)
        //{
        //    try
        //    {
        //        var url = System.IO.Path.Combine(UserResponseURL.DirectoryURL, selectedMedia.VideoLocation);
        //        var file = VideoDownloadAsyncController.GetDownloadedDiskVideoUri(url);

        //        SimpleCache cache = new SimpleCache(this.CacheDir, new LeastRecentlyUsedCacheEvictor(1024 * 1024 * 10));
        //        CacheDataSourceFactory cacheDataSource = new CacheDataSourceFactory(cache, DefaultDataMediaFactory);

        //        if (!string.IsNullOrEmpty(file))
        //        {
        //            videoUrL = Android.Net.Uri.Parse(file);

        //            videoSource = GetMediaSourceFromUrl(videoUrL, "normal");
        //            return videoSource;
        //        }
        //        else
        //        {
        //            return null;
        //        }
        //    }
        //    catch (Exception exception)
        //    {
        //        Console.WriteLine(exception);
        //        return null;
        //    }
        //}

        public void Play()
        {
            try
            {
                progressBar.Visibility = ViewStates.Visible;
                if (Player != null)
                {
                    Player.Stop();
                    Player.Release();
                }
                InitializePlayer();
                if (selectedMedia.VideoLocation.Contains(".mp4"))
                {
                    imgAudio.Visibility               = ViewStates.Gone;
                    SimpleExoPlayerView.Visibility    = ViewStates.Visible;
                    SimpleExoPlayerView.ResizeMode    = AspectRatioFrameLayout.ResizeModeZoom;
                    SimpleExoPlayerView.Player        = Player;
                    SimpleExoPlayerView.UseController = false;
                    swipListener.SwipeEvent          -= SwipListener_SwipeEvent;
                    swipListener.SwipeEvent          += SwipListener_SwipeEvent;
                    SimpleExoPlayerView.SetOnTouchListener(swipListener);
                }
                else
                {
                    imgAudio.Visibility            = ViewStates.Visible;
                    SimpleExoPlayerView.Visibility = ViewStates.Gone;
                    swipListener.SwipeEvent       -= SwipListener_SwipeEvent;
                    swipListener.SwipeEvent       += SwipListener_SwipeEvent;
                    imgAudio.SetOnTouchListener(swipListener);
                    Glide.With(this).Load(System.IO.Path.Combine(UserResponseURL.DirectoryURL, selectedMedia.Thumbnail)).Into(imgAudio);
                }
                var url         = Android.Net.Uri.Parse(System.IO.Path.Combine(UserResponseURL.DirectoryURL, selectedMedia.VideoLocation));
                var VideoSource = GetMediaSourceFromUrl(url, "normal");
                Player.Prepare(VideoSource);
                Player.AddListener(new LatestPlayerListener(this));
                Player.PlayWhenReady = true;
                Glide.With(this).Load(UserResponseURL.DirectoryUserSettings + selectedMedia.Avatar).Into(imgProfile);
                txtUserName.Text      = selectedMedia.Username;
                txtdays.Text          = Helpers.DateTimeHelper.GetDateTimeString(selectedMedia.Timestamp);
                txtDescription.Text   = selectedMedia.Description;
                txtLikeNumber.Text    = selectedMedia.Likes;
                txtShareNumber.Text   = selectedMedia.Shares;
                txtCommentNumber.Text = selectedMedia.Comments;

                if (selectedMedia.IsLiked == "1") // true
                {
                    btnLike.Tag = "1";
                    btnLike.SetImageResource(Resource.Drawable.like_blue);
                }
                else
                {
                    btnLike.Tag = "0";
                    btnLike.SetImageResource(Resource.Drawable.like_white);
                }
            }
            catch (System.Exception ex)
            {
            }
        }
        protected override void Dispose(bool disposing)
        {
            _player.Stop();
            _player.Release();

            trackSelector.Dispose();

            base.Dispose(disposing);
            _playerView   = null;
            trackSelector = null;
            _player       = null;
        }
Esempio n. 4
0
        public void PlayVideo(string videoUrL, VideoObject videoObject, long resumePosition)
        {
            try
            {
                if (Player != null)
                {
                    SetStopvideo();

                    Player?.Release();
                    Player = null;

                    //GC Collecter
                    GC.Collect();
                }

                AdaptiveTrackSelection.Factory trackSelectionFactory = new AdaptiveTrackSelection.Factory();
                var trackSelector = new DefaultTrackSelector(trackSelectionFactory);
                var newParameters = new DefaultTrackSelector.ParametersBuilder()
                                    .SetMaxVideoSizeSd()
                                    .SetPreferredAudioLanguage("deu")
                                    .Build();
                trackSelector.SetParameters(newParameters);

                Player = ExoPlayerFactory.NewSimpleInstance(ActivityContext, trackSelector);
                FullWidthSetting();

                DefaultDataMediaFactory = new DefaultDataSourceFactory(ActivityContext, Util.GetUserAgent(ActivityContext, AppSettings.ApplicationName), BandwidthMeter);

                VideoSource = null;
                VideoSource = GetMediaSourceFromUrl(Uri.Parse(videoUrL), "normal");

                SimpleExoPlayerView.Player = Player;
                Player.Prepare(VideoSource);
                Player.AddListener(PlayerListener);
                Player.PlayWhenReady = true;
                Player.AddVideoListener(this);

                bool haveResumePosition = ResumeWindow != C.IndexUnset;
                if (haveResumePosition)
                {
                    Player.SeekTo(ResumeWindow, resumePosition);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
        protected override void OnElementChanged(ElementChangedEventArgs <VideoPlayerExo> e)
        {
            base.OnElementChanged(e);

            if (_player != null)
            {
                _player.Release();
            }
            if (_player == null)
            {
                _player = ExoPlayerFactory.NewSimpleInstance(Context);
                _player.PlayWhenReady = true;
                _view                    = new SimpleExoPlayerView(Context);
                _view.Background         = new GradientDrawable(GradientDrawable.Orientation.BottomTop, new int[] { Color.Transparent.ToAndroid(), Color.Transparent.ToAndroid() });
                _view.ControllerAutoShow = false;

                _view.UseController         = false;
                _player.RenderedFirstFrame += _player_RenderedFirstFrame;
                _player.VideoSizeChanged   += _player_VideoSizeChanged;

                _view.Player = _player;

                url = e.NewElement.Source;
                SetNativeControl(_view);
            }

            Play();
        }
Esempio n. 6
0
 /// <summary>
 /// Releases the player.
 /// </summary>
 private void ReleasePlayer()
 {
     if (_player != null)
     {
         _debugViewHelper.Stop();
         _debugViewHelper       = null;
         _shouldAutoPlay        = _player.PlayWhenReady;
         _shouldRestorePosition = false;
         Timeline timeline = _player.CurrentTimeline;
         if (timeline != null)
         {
             _playerWindow = _player.CurrentWindowIndex;
             Timeline.Window window = timeline.GetWindow(_playerWindow, new Timeline.Window());
             if (!window.IsDynamic)
             {
                 _shouldRestorePosition = true;
                 _playerPosition        = window.IsSeekable ? _player.CurrentPosition : C.TimeUnset;
             }
         }
         _player.Release();
         _player               = null;
         _trackSelector        = null;
         _trackSelectionHelper = null;
         _eventLogger          = null;
     }
 }
Esempio n. 7
0
 protected override void OnPause()
 {
     base.OnPause();
     _player?.Release();
     _player?.Dispose();
     _player = null;
 }
Esempio n. 8
0
 public void Stop()
 {
     _handler.Post(() =>
     {
         try
         {
             if (_player != null)
             {
                 IsPlaying = false;
                 _player.RemoveListener(this);
                 _player.Release();
                 StateChanged?.Invoke(this, EventArgs.Empty);
             }
         }
         catch (Exception ex)
         {
             Android.Util.Log.Warn(TAG, $"Error during stop of player: {ex.Message}");
             Android.Util.Log.Debug(TAG, ex.ToString());
         }
         finally
         {
             _player = null;
         }
     });
 }
Esempio n. 9
0
 protected override void OnCleanUp(ElementChangedEventArgs <VideoView> e)
 {
     base.OnCleanUp(e);
     timerIsRunning = false;
     player.RemoveListener(this);
     player.Release();
 }
Esempio n. 10
0
 public override void OnBackPressed()
 {
     base.OnBackPressed();
     player.PlayWhenReady = false;
     player.Release();
     playerView.KeepScreenOn = false;
     player = null;
 }
Esempio n. 11
0
 private void PlayerRelease()
 {
     if (_exoPlayer != null)
     {
         _exoPlayer.PlayWhenReady = false;
         _exoPlayer.Release();
     }
 }
Esempio n. 12
0
 /**
  * Releases the manager and the players that it holds.
  */
 public void Release()
 {
     currentItemIndex = C.IndexUnset;
     mediaQueue.Clear();
     concatenatingMediaSource.Clear();
     castPlayer.SetSessionAvailabilityListener(null);
     castPlayer.Release();
     localPlayerView.Player = null;
     exoPlayer.Release();
 }
Esempio n. 13
0
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         StopPositionListenerInterval();
         dataSourceFactory?.Dispose();
         RemovePlayerListeners();
         player.Release();
     }
     base.Dispose(disposing);
 }
 private void ReleasePlayer()
 {
     if (player != null)
     {
         debugViewHelper.Stop();
         debugViewHelper = null;
         shouldAutoPlay  = player.PlayWhenReady;
         UpdateResumePosition();
         player.Release();
         player               = null;
         trackSelector        = null;
         trackSelectionHelper = null;
         eventLogger          = null;
     }
 }
 protected override void Dispose(bool disposing)
 {
     //if (Control != null && videoView != null)
     //{
     //    videoView.Prepared -= OnVideoViewPrepared;
     //}
     if (Element != null)
     {
         Element.UpdateStatus -= OnUpdateStatus;
     }
     ExoPlayer.Stop();
     ExoPlayer.Release();
     PlayerView.Dispose();
     base.Dispose(disposing);
 }
Esempio n. 16
0
        public void ReleasePlayer()
        {
            try
            {
                if (VideoPlayer != null)
                {
                    VideoPlayer.Release();
                    VideoPlayer = null;
                }

                ViewHolderParent = null;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Esempio n. 17
0
        //private IMediaSource CreateCacheMediaSource(IMediaSource videoSource, Android.Net.Uri videoUrL)
        //{
        //    try
        //    {
        //        var url = System.IO.Path.Combine(UserResponseURL.DirectoryURL, selectedMedia.VideoLocation);
        //        var file = VideoDownloadAsyncController.GetDownloadedDiskVideoUri(url);

        //        SimpleCache cache = new SimpleCache(this.CacheDir, new LeastRecentlyUsedCacheEvictor(1024 * 1024 * 10));
        //        CacheDataSourceFactory cacheDataSource = new CacheDataSourceFactory(cache, DefaultDataMediaFactory);

        //        if (!string.IsNullOrEmpty(file))
        //        {
        //            videoUrL = Android.Net.Uri.Parse(file);

        //            videoSource = GetMediaSourceFromUrl(videoUrL, "normal");
        //            return videoSource;
        //        }
        //        else
        //        {
        //            return null;
        //        }
        //    }
        //    catch (Exception exception)
        //    {
        //        Console.WriteLine(exception);
        //        return null;
        //    }
        //}

        public void PlayAsync()
        {
            try
            {
                progressBar.Visibility = ViewStates.Visible;
                if (Player != null)
                {
                    Player.Stop();
                    Player.Release();
                }
                InitializePlayer();
                if (selectedMedia.VideoLocation.Contains(".mp4"))
                {
                    imgAudio.Visibility               = ViewStates.Gone;
                    SimpleExoPlayerView.Visibility    = ViewStates.Visible;
                    SimpleExoPlayerView.ResizeMode    = AspectRatioFrameLayout.ResizeModeZoom;
                    SimpleExoPlayerView.Player        = Player;
                    SimpleExoPlayerView.UseController = false;
                    swipListener.SwipeEvent          -= SwipListener_SwipeEvent;
                    swipListener.SwipeEvent          += SwipListener_SwipeEvent;
                    SimpleExoPlayerView.SetOnTouchListener(swipListener);
                }
                else
                {
                    imgAudio.Visibility            = ViewStates.Visible;
                    SimpleExoPlayerView.Visibility = ViewStates.Gone;
                    swipListener.SwipeEvent       -= SwipListener_SwipeEvent;
                    swipListener.SwipeEvent       += SwipListener_SwipeEvent;
                    imgAudio.SetOnTouchListener(swipListener);
                    Glide.With(this).Load(System.IO.Path.Combine(UserResponseURL.DirectoryURL, selectedMedia.Thumbnail)).Into(imgAudio);
                }
                var url         = Android.Net.Uri.Parse(System.IO.Path.Combine(UserResponseURL.DirectoryURL, selectedMedia.VideoLocation));
                var VideoSource = GetMediaSourceFromUrl(url, "normal");
                Player.Prepare(VideoSource);
                PlayerListener playerListener = new PlayerListener(this);
                playerListener.MediaPlayCompleted = () =>
                {
                    if (!string.IsNullOrEmpty(UserDetails.AccessToken))
                    {
                        UserResponseAPI.ViewVideoResponse(selectedMedia.RvId);
                        TabbedMainActivity.GetInstance().VideoDataWithEventsLoader
                        .ResponseFragment.UserResponseAdapter.UserResponseList
                        .Where(x => x.VideoLocation == selectedMedia.VideoLocation)
                        .FirstOrDefault().RvvId = string.Empty;
                        TabbedMainActivity.GetInstance().VideoDataWithEventsLoader
                        .ResponseFragment.UserResponseAdapter
                        .NotifyItemChanged(mediaList.FindIndex(x => x.VideoLocation == selectedMedia.VideoLocation));
                    }
                };
                Player.AddListener(playerListener);
                Player.PlayWhenReady = true;
                Glide.With(this).Load(UserResponseURL.DirectoryUserSettings + selectedMedia.Avatar).Into(imgProfile);
                txtUserName.Text      = selectedMedia.Username;
                txtdays.Text          = Helpers.DateTimeHelper.GetDateTimeString(selectedMedia.Timestamp);
                txtDescription.Text   = selectedMedia.Description;
                txtLikeNumber.Text    = selectedMedia.Likes;
                txtShareNumber.Text   = selectedMedia.Shares;
                txtCommentNumber.Text = selectedMedia.Comments;

                if (selectedMedia.IsLiked == "1") // true
                {
                    btnLike.Tag = "1";
                    btnLike.SetImageResource(Resource.Drawable.like_blue);
                }
                else
                {
                    btnLike.Tag = "0";
                    btnLike.SetImageResource(Resource.Drawable.like_white);
                }
            }
            catch (System.Exception ex)
            {
            }
        }
Esempio n. 18
0
 internal void Release()
 {
     _player.Release();
     _audioPlayer.Release();
     //video.Release();
 }