示例#1
0
        void CreateMediaPlayerIfNeeded()
        {
            if (mediaPlayer != null)
            {
                mediaPlayer.Reset();
                return;
            }

            mediaPlayer = new Android.Media.MediaPlayer();
            mediaPlayer.SetWakeMode(Context.ApplicationContext, WakeLockFlags.Partial);
            mediaPlayer.SetOnPreparedListener(this);
            mediaPlayer.SetOnCompletionListener(this);
            mediaPlayer.SetOnErrorListener(this);
            mediaPlayer.SetOnSeekCompleteListener(this);
        }
示例#2
0
 public AndroidMusic(AssetFileDescriptor afd)
 {
     this.mp = new MediaPlayer ();
     try {
         mp.SetDataSource(afd.FileDescriptor, afd.StartOffset, afd.Length);
         mp.Prepare();
         isPrepared = true;
         mp.SetOnCompletionListener(this);
         mp.SetOnSeekCompleteListener(this);
         mp.SetOnPreparedListener(this);
         mp.SetOnVideoSizeChangedListener(this);
     } catch {
         throw new ApplicationException("Couldn't load music");
     }
 }
示例#3
0
        public AndroidMusic(AssetFileDescriptor assetDescriptor)
        {
            mediaPlayer = new MediaPlayer();
            try
            {
                mediaPlayer.SetDataSource(assetDescriptor.FileDescriptor,
                                          assetDescriptor.StartOffset,
                                          assetDescriptor.Length);
                mediaPlayer.Prepare();
                isPrepared = true;
                mediaPlayer.SetOnCompletionListener(this);
                mediaPlayer.SetOnSeekCompleteListener(this);
                mediaPlayer.SetOnPreparedListener(this);
                mediaPlayer.SetOnVideoSizeChangedListener(this);

            }
            catch (Exception e)
            {
                throw new SystemException("Couldn't load music");
            }
        }
示例#4
0
        private void InitializePlayer()
        {
            _player = new AndroidMediaPlayer();
            var surfaceView = RenderSurface as SurfaceView;

            if (_hasValidHolder)
            {
                _player.SetDisplay(surfaceView.Holder);
                _player.SetScreenOnWhilePlaying(true);
            }
            else
            {
                surfaceView.Holder.AddCallback(this);
            }

            _player.SetOnErrorListener(this);
            _player.SetOnPreparedListener(this);
            _player.SetOnSeekCompleteListener(this);
            _player.SetOnBufferingUpdateListener(this);

            PlaybackSession.PlaybackStateChanged -= OnStatusChanged;
            PlaybackSession.PlaybackStateChanged += OnStatusChanged;
        }
示例#5
0
		void CreateMediaPlayerIfNeeded ()
		{
			LogHelper.Debug (Tag, "createMediaPlayerIfNeeded. needed? ", (mediaPlayer==null));
			if (mediaPlayer == null) {
				mediaPlayer = new MediaPlayer ();

				mediaPlayer.SetWakeMode (service.ApplicationContext,
					Android.OS.WakeLockFlags.Partial);

				mediaPlayer.SetOnPreparedListener (this);
				mediaPlayer.SetOnCompletionListener (this);
				mediaPlayer.SetOnErrorListener (this);
				mediaPlayer.SetOnSeekCompleteListener (this);
			} else {
				mediaPlayer.Reset ();
			}
		}
		public void OnPrepared (MediaPlayer mp)
		{
			mp.Looping = true;
			int h = mp.VideoHeight;
			int w = mp.VideoWidth;

			mp.SetOnVideoSizeChangedListener (this);
			mp.SetOnBufferingUpdateListener (this);
			mp.SetOnSeekCompleteListener (this);
			mp.SetOnCompletionListener (this);

			int time = vv.Duration;
			int time_elapsed = vv.CurrentPosition;
			pb.Progress = time_elapsed;

			var timer = new CountDown (time, 500);
			timer.Tick += (long millisUntilFinished) => {
				float a = vv.CurrentPosition;
				float b = vv.Duration;

				pb.Progress = (int)(a/b*100);
			};
			timer.Finish += () => {
				Toast.MakeText (this, "Timer Finished", ToastLength.Short).Show ();
			};

			Toast.MakeText (this, "Video Prepared", ToastLength.Short).Show ();
		}
                public void OnPrepared( MediaPlayer mp )
                {
                    // now that the video is ready we can hide the progress bar
                    ProgressBar.Visibility = ViewStates.Gone;

                    MediaController.SetAnchorView( VideoPlayer );

                    // setup a seek listener
                    mp.SetOnSeekCompleteListener( this );

                    // log the series they tapped on.
                    MessageAnalytic.Instance.Trigger( MessageAnalytic.Watch, Name );

                    // if this is a new video, store the URL
                    if ( App.Shared.Network.RockMobileUser.Instance.LastStreamingMediaUrl != MediaUrl )
                    {
                        App.Shared.Network.RockMobileUser.Instance.LastStreamingMediaUrl = MediaUrl;
                        VideoPlayer.Start( );

                        // once the video starts, if we're in landscape wide, go full screen
                        if ( MainActivity.IsLandscapeWide( ) )
                        {
                            ParentTask.NavbarFragment.ToggleFullscreen( true );
                        }
                    }
                    else
                    {
                        // otherwise, resume where we left off
                        mp.SeekTo( (int)App.Shared.Network.RockMobileUser.Instance.LastStreamingMediaPos );
                    }
                }
                public void OnPrepared( MediaPlayer mp )
                {
                    Rock.Mobile.Util.Debug.WriteLine( "OnPrepared - Audio ready to play" );

                    // now that we know the media player is read, set the controller's player
                    MediaController.SetMediaPlayer( this );
                    MediaControllerPrepared = true;

                    // setup a seek listener
                    mp.SetOnSeekCompleteListener( this );

                    // log the series they tapped on.
                    MessageAnalytic.Instance.Trigger( MessageAnalytic.Listen, Name );

                    // if this is a new video, store the URL
                    if ( App.Shared.Network.RockMobileUser.Instance.LastStreamingMediaUrl != MediaUrl )
                    {
                        App.Shared.Network.RockMobileUser.Instance.LastStreamingMediaUrl = MediaUrl;

                        PlayerState = MediaPlayerState.Playing;
                        mp.Start( );

                        SyncUI( );
                    }
                    else
                    {
                        // otherwise, resume where we left off
                        mp.SeekTo( (int)App.Shared.Network.RockMobileUser.Instance.LastStreamingMediaPos );
                    }
                }