private void MusicDialog_Click(object sender, EventArgs e)
 {
     OnPicked?.Invoke(null);
     _audioPlayer.Stop();
     _audioPlayer.Release();
     Dismiss();
 }
Exemple #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)
 {
     //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 Play(string url)
        {
            if (clicks % 2 == 0)
            {
                #region ExoPlayer

                var mediaUrl = url;
                var mediaUri = Android.Net.Uri.Parse(mediaUrl);
                Android.Content.Context context = Android.App.Application.Context;
                var userAgent = Util.GetUserAgent(context, "InstationPlayer");
                var defaultHttpDataSourceFactory  = new DefaultHttpDataSourceFactory(userAgent);
                var defaultDataSourceFactory      = new DefaultDataSourceFactory(context, null, defaultHttpDataSourceFactory);
                var extractorMediaSource          = new ExtractorMediaSource(mediaUri, defaultDataSourceFactory, new DefaultExtractorsFactory(), null, null);
                var defaultBandwidthMeter         = new DefaultBandwidthMeter();
                var adaptiveTrackSelectionFactory = new AdaptiveTrackSelection.Factory(defaultBandwidthMeter);
                var defaultTrackSelector          = new DefaultTrackSelector(adaptiveTrackSelectionFactory);

                exoPlayer = ExoPlayerFactory.NewSimpleInstance(context, defaultTrackSelector);
                exoPlayer.Prepare(extractorMediaSource);
                Console.WriteLine("Prepared");
                exoPlayer.PlayWhenReady = true;
                Console.WriteLine("Started");
                clicks++;

                #endregion
            }
            else if (clicks % 2 != 0)
            {
                exoPlayer.Stop();
                Console.WriteLine("Paused");
                clicks++;
            }
        }
Exemple #5
0
        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);

            if (e.PropertyName == ExtendedVideoPlayer.IsAppearedProperty.PropertyName)
            {
                if (!(Element.IsAppeared) &&
                    _exoPlayer != null)
                {
                    _exoPlayer.PlayWhenReady = false;
                }
            }
            else if (e.PropertyName == ExtendedVideoPlayer.SourceProperty.PropertyName)
            {
                string s = Element.Source;
                _exoPlayer.Stop();
                IMediaSource videoSource = new ExtractorMediaSource(
                    Android.Net.Uri.Parse(Element.Source),
                    new CacheableDataSource(Context, 100 * 1024 * 1024, 5 * 1024 * 1024),
                    new DefaultExtractorsFactory(),
                    null,
                    null);
                _exoPlayer.Prepare(videoSource);
            }
        }
Exemple #6
0
        internal void StopPlayback()
        {
            _player.Stop();

            _audioPlayer.PlayWhenReady = false;
            _player.PlayWhenReady      = false;
            //FindViewById<ImageView>(Resource.Id.pausebtn).Visibility = ViewStates.Gone;
            mediaSource            = null;
            seeker.Visibility      = ViewStates.Invisible;
            _playerView.Visibility = ViewStates.Invisible;
            //show play button
            //FindViewById<ImageView>(Resource.Id.pausebtn).SetImageResource(Resource.Drawable.baseline_play_circle_outline_white_48);
            //FindViewById(Resource.Id.pausebtn).Visibility = ViewStates.Visible;
        }
        protected override void OnElementChanged(ElementChangedEventArgs <VideoPlayer> args)
        {
            base.OnElementChanged(args);

            if (_player == null)
            {
                InitializePlayer();
            }


            if (_player.IsPlayingAd || _player.IsLoading)
            {
                _player.Stop();
            }

            fullscreenOrientation = ScreenOrientation.Landscape;

            Play();
            SetupFunctionality(args);
            fullscreenView = (ImageView)_playerView.FindViewById(Resource.Id.exo_fullscreen_icon);

            fullscreenView.Click += delegate
            {
                if (isFullscreen)
                {
                    _playerView.SystemUiVisibility = (StatusBarVisibility)SystemUiFlags.Visible;
                    setMiniPlayer();
                    ((IVideoPlayerController)Element).Fullscreen = false;
                }
                else
                {
                    _playerView.SystemUiVisibility = (StatusBarVisibility)uiFullScreenOptions;
                    setFullScreenPlayer();
                    ((IVideoPlayerController)Element).Fullscreen = true;
                }
            };
        }
Exemple #8
0
 internal void SetAudio(string v)
 {
     //set audio:
     if (v != null)
     {
         audioSource = new ExtractorMediaSource(Android.Net.Uri.Parse(v), httpDataSourceFactory, extractorsFactory, null, null);
         _audioPlayer.Prepare(audioSource);
         _audioPlayer.PlayWhenReady = false;
     }
     else
     {
         audioSource = null;
         _audioPlayer.Stop();
     }
 }
 public override async Task Stop()
 {
     _mediaPlayer.Stop();
     await base.Stop();
 }
Exemple #10
0
 public void Stop()
 {
     TheExoPlayer.Stop();
 }
Exemple #11
0
 /// <summary>
 /// Stops the and dispose.
 /// </summary>
 public void StopAndDispose()
 {
     _player.Stop();
     //_player.Dispose();
 }
Exemple #12
0
 public void Stop()
 {
     player.Stop();
     isPlaying = false;
 }
Exemple #13
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)
            {
            }
        }