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); } }
/// <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); } }
public override void onCompletion(MediaPlayer mediaPlayer) { if (mPlayer == mediaPlayer) { mController.CurentState = PlayerState.STOPPED; } }
// // 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 } }
public void onBufferingUpdate(android.media.MediaPlayer mp, int percent) { throw new System.NotImplementedException(); }
public bool onError(android.media.MediaPlayer mp, int framework_err, int impl_err ) { throw new System.NotImplementedException(); }
public void onCompletion(android.media.MediaPlayer mp) { throw new System.NotImplementedException(); }
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; }