private void MusicDialog_Click(object sender, EventArgs e) { OnPicked?.Invoke(null); _audioPlayer.Stop(); _audioPlayer.Release(); Dismiss(); }
//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; }
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(); }
/// <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; } }
protected override void OnPause() { base.OnPause(); _player?.Release(); _player?.Dispose(); _player = null; }
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; } }); }
protected override void OnCleanUp(ElementChangedEventArgs <VideoView> e) { base.OnCleanUp(e); timerIsRunning = false; player.RemoveListener(this); player.Release(); }
public override void OnBackPressed() { base.OnBackPressed(); player.PlayWhenReady = false; player.Release(); playerView.KeepScreenOn = false; player = null; }
private void PlayerRelease() { if (_exoPlayer != null) { _exoPlayer.PlayWhenReady = false; _exoPlayer.Release(); } }
/** * 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(); }
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); }
public void ReleasePlayer() { try { if (VideoPlayer != null) { VideoPlayer.Release(); VideoPlayer = null; } ViewHolderParent = null; } catch (Exception e) { Console.WriteLine(e); } }
//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) { } }
internal void Release() { _player.Release(); _audioPlayer.Release(); //video.Release(); }