Beispiel #1
0
        internal LocalPlayer(PlayerController controller, Uri content, Uri subtitlesUri, SurfaceView videoView)
        {
            mController = controller;

            // Create and initialize Android MediaPlayer instance.
            mPlayer = new MediaPlayer();
            mPlayer.OnCompletionListener = this;

            mSurfaceHolder = videoView.Holder;
            mSurfaceHolder.addCallback(this);

            bool isSurfaceValid = mSurfaceHolder.Surface.Valid;

            if (isSurfaceValid)
            {
                mPlayer.Display = mSurfaceHolder;
            }

            try
            {
                mPlayer.setDataSource(controller.mContext, content);

                mPlayer.prepare();
                if (subtitlesUri != null)
                {
                    mPlayer.addTimedTextSource(subtitlesUri.Path, MediaPlayer.MEDIA_MIMETYPE_TEXT_SUBRIP);
                    mPlayer.OnTimedTextListener = this;
                }
                controller.Duration = mPlayer.Duration / 1000;
            }
            catch (IOException ignored)
            {
                Log.e("VideoPlayer", ignored.Message);
            }
        }
Beispiel #2
0
 /// <summary>
 /// Listener that is invoked where a suitable subtitle should be loaded.
 /// When there no text should be displayed - then TimedText is a null.
 /// </summary>
 public override void onTimedText(MediaPlayer mediaPlayer, TimedText text)
 {
     if (text != null)
     {
         mController.notifySubtitles(text.Text);
     }
 }
Beispiel #3
0
 public override void onCompletion(MediaPlayer mediaPlayer)
 {
     if (mPlayer == mediaPlayer)
     {
         mController.CurentState = PlayerState.STOPPED;
     }
 }
		internal LocalPlayer(PlayerController controller, Uri content, Uri subtitlesUri, SurfaceView videoView)
		{
			mController = controller;

			// Create and initialize Android MediaPlayer instance.
			mPlayer = new MediaPlayer();
			mPlayer.OnCompletionListener = this;

			mSurfaceHolder = videoView.Holder;
			mSurfaceHolder.addCallback(this);

			bool isSurfaceValid = mSurfaceHolder.Surface.Valid;

			if (isSurfaceValid)
			{
				mPlayer.Display = mSurfaceHolder;
			}

			try
			{
				mPlayer.setDataSource(controller.mContext, content);

				mPlayer.prepare();
				if (subtitlesUri != null)
				{
					mPlayer.addTimedTextSource(subtitlesUri.Path, MediaPlayer.MEDIA_MIMETYPE_TEXT_SUBRIP);
					mPlayer.OnTimedTextListener = this;
				}
				controller.Duration = mPlayer.Duration / 1000;
			}
			catch (IOException ignored)
			{
				Log.e("VideoPlayer", ignored.Message);
			}
		}
Beispiel #5
0
        //
        // static constructor
        //

        static MediaPlayer()
        {
            volume = 1f;
            state  = new java.util.concurrent.atomic.AtomicInteger(0);
            queue  = new MediaQueue();
            var watcher = new Watcher();

            player = new android.media.MediaPlayer();
            player.setOnPreparedListener(watcher);
            player.setOnCompletionListener(watcher);
        }
        internal LocalPlayer(PlayerController controller, Uri content)
        {
            this.mController = controller;

            // Create and initialize Android MediaPlayer instance.
            mPlayer = new MediaPlayer();
            try
            {
                mPlayer.setDataSource(controller.mContext, content);
                mPlayer.prepare();
                controller.Duration = mPlayer.Duration / 1000;
            }
            catch (IOException)
            {
                // Ignored for application brevity
            }
        }
		internal LocalPlayer(PlayerController controller, Uri content)
		{
			this.mController = controller;

			// Create and initialize Android MediaPlayer instance.
			mPlayer = new MediaPlayer();
			try
			{
				mPlayer.setDataSource(controller.mContext, content);
				mPlayer.prepare();
				controller.Duration = mPlayer.Duration / 1000;
			}
			catch (IOException)
			{
				// Ignored for application brevity
			}

		}
Beispiel #8
0
 public void onBufferingUpdate(android.media.MediaPlayer mp, int percent)
 {
     throw new System.NotImplementedException();
 }
Beispiel #9
0
 public bool onError(android.media.MediaPlayer mp, int framework_err, int impl_err
                     )
 {
     throw new System.NotImplementedException();
 }
Beispiel #10
0
 public void onCompletion(android.media.MediaPlayer mp)
 {
     throw new System.NotImplementedException();
 }
Beispiel #11
0
 public void onVideoSizeChanged(android.media.MediaPlayer mp, int width, int height
                                )
 {
     throw new System.NotImplementedException();
 }
		/// <summary>
		/// Finds if there is a TimedTrack attached.
		/// </summary>
		private int findTimedTextTrack(MediaPlayer.TrackInfo[] trackInfo)
		{
			int index = -1;
			for (int i = 0; i < trackInfo.Length; i++)
			{
				if (trackInfo[i].TrackType == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT)
				{
					return i;
				}
			}
			return index;
		}
		public override void onCompletion(MediaPlayer mediaPlayer)
		{
			if (mPlayer == mediaPlayer)
			{
				mController.CurentState = PlayerState.STOPPED;
			}
		}
		/// <summary>
		/// Listener that is invoked where a suitable subtitle should be loaded.
		/// When there no text should be displayed - then TimedText is a null.
		/// </summary>
		public override void onTimedText(MediaPlayer mediaPlayer, TimedText text)
		{
			if (text != null)
			{
				mController.notifySubtitles(text.Text);
			}
		}