![](/img/trans.png)
[英]How can I create a MediaController instance from MediaSessionManager?
[英]How can I create videoView with MediaController below
我正在以編程方式創建videoView,它需要保持原樣
videoView = new VideoView(context);
mediaController = new MediaController(context);
mediaController.findFocus();
mediaController.setEnabled(true);
mediaController.show(0);
String url = "android.resource://" + context.getPackageName() + "/"
+ R.raw.video;
videoView.setVideoURI(Uri.parse(url));
videoView.requestFocus();
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
(ViewSizeUtl.getWidthOfDisplay(context)) * 2 / 3,
(ViewSizeUtl.getHeightOfDisplay(context) * 2 / 3));
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL,
RelativeLayout.TRUE);
videoView.setLayoutParams(layoutParams);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
addView(videoView);
我需要mediaController保持在viewView下面。
在媒體播放器中添加媒體控制器非常簡單。 使您的活動實現MediaPlayerControl並添加未實現的方法。 代碼如下:
我正在使用來自http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html的 Api演示中的代碼
public class ActivityVedioPlay extends Activity implements
OnBufferingUpdateListener, OnCompletionListener, OnPreparedListener,
OnVideoSizeChangedListener, SurfaceHolder.Callback, MediaPlayerControl {
.....
private MediaPlayer mMediaPlayer;
private MediaController mcontroller;
private Handler handler = new Handler();
.....
@Override
public boolean onTouchEvent(MotionEvent event) {
/*
* the MediaController will hide after 3 seconds - tap the screen to
* make it appear again
*/
mcontroller.show();
return false;
}
......
private void playVideo() {
doCleanUp();
try {
path = getIntent().getStringExtra("url");
if (path == "") {
Toast.makeText(ActivityVedioPlay.this, "URL Not found",
Toast.LENGTH_LONG).show();
}
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(path);
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepare();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setScreenOnWhilePlaying(true);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mcontroller = new MediaController(this);
} catch (Exception e) {
e.printStackTrace();
}
}
......
public void onPrepared(MediaPlayer mediaplayer) {
Log.d(TAG, "onPrepared called");
mIsVideoReadyToBePlayed = true;
if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown) {
startVideoPlayback();
}
mcontroller.setMediaPlayer(this);
mcontroller.setAnchorView(findViewById(R.id.mediaplayer_surfaceview_container));
handler.post(new Runnable() {
public void run() {
mcontroller.setEnabled(true);
mcontroller.show();
}
});
}
//mediacontroller implemented methods
public void start() {
mMediaPlayer.start();
}
public void pause() {
mMediaPlayer.pause();
}
public int getDuration() {
return mMediaPlayer.getDuration();
}
public int getCurrentPosition() {
return mMediaPlayer.getCurrentPosition();
}
public void seekTo(int i) {
mMediaPlayer.seekTo(i);
}
public boolean isPlaying() {
return mMediaPlayer.isPlaying();
}
public int getBufferPercentage() {
return 0;
}
public boolean canPause() {
return true;
}
public boolean canSeekBackward() {
return true;
}
public boolean canSeekForward() {
return true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.