添付の画像のようなレイアウトを作成したいのですが、メディアコントローラーを作成すると、ビデオプレーヤーの下に表示されず、アクティビティの中央下部に表示されるという問題があります。xmlファイルでmediacontrollerを作成しようとしましたが、どちらも機能せず、このhttps://stackoverflow.com/a/10315093/1065357も試しましたが、機能しません。私はアンドロイド4タブレットバージョンを使用しています。
ありがとうございました
1 に答える
1
カスタム メディア コントロール パネルを作成したり、ボトム パネルを使用したり、再生、一時停止、停止などのボタンを追加したりできますlayout gravity
。カスタムの再生、一時停止、停止、転送などのボタンをクリックするとmediaPlayer.play()
、呼び出すことができますmediaPlayer.pause()
。
SurfaceHolder.callback
この目的のために、次のようにインターフェースを実装する必要があります。
public class VideoViewActivity extends Activity implements SurfaceHolder.Callback
{
public boolean canPause()
{
// TODO Auto-generated method stub
Log.e("paused ","called");
return true;
}
public boolean canSeekBackward() {
// TODO Auto-generated method stub
return true;
}
public boolean canSeekForward() {
// TODO Auto-generated method stub
return true;
}
public int getBufferPercentage()
{
// TODO Auto-generated method stu
return 0;
}
public int getCurrentPosition()
{
// TODO Auto-generated method stub
return mMediaPlayer.getCurrentPosition();
}
public int getDuration()
{
// TODO Auto-generated method stub
return mMediaPlayer.getDuration();
}
public boolean isPlaying()
{
// TODO Auto-generated method stub
return mMediaPlayer.isPlaying();
}
public void pause() {
// TODO Auto-generated method stub
mMediaPlayer.pause();
}
public void seekTo(int pos) {
// TODO Auto-generated method stub
mMediaPlayer.seekTo(pos);
}
public void start()
{
// TODO Auto-generated method stub
mMediaPlayer.start();
}
}
このインターフェイスを実装すると、メディア制御機能 (再生、一時停止、シークなど) にアクセスできるようになります。
表面ホルダーはすぐに入手でき SurfaceHolder holder= surfaceView.getHolder();
ますmediaPlayer.setDisplay(holder)
videoViewActivity のレイアウトで surfaceView タグを宣言します。サーフェス ホルダーは、ビデオのビデオ ストリームを表示するコンポーネントです。
これが役立つことを願っています。
于 2012-05-29T15:47:56.687 に答える