Android MediaPlayer

1、实现点击屏幕出现控制按钮,再次点击隐藏按钮。并可以自动隐藏按钮。

public void show(int timeout) {

if (!mShowing) {

top_framelayout.setVisibility(View.VISIBLE);

bottom_framelayout.setVisibility(View.VISIBLE);

mShowing = true;

}

if (timeout != 0) {

Message msg = mHandler.obtainMessage(FADE_OUT);

mHandler.removeMessages(FADE_OUT);

mHandler.sendMessageDelayed(msg, timeout);

}

}


public void hide() {

if (mShowing) {

top_framelayout.setVisibility(View.GONE);

bottom_framelayout.setVisibility(View.GONE);

mShowing = false;

}

}


private Handler mHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

switch (msg.what) {

case FADE_OUT:

hide();

break;

}

}

};


private void toggleMediaControlsVisiblity() {

if (mShowing) {

hide();

} else {

show(sDefaultTimeout);

}

}


// 手势类

public class MySimpleOnGestureListener extends SimpleOnGestureListener {

@Override

public boolean onSingleTapUp(MotionEvent e) {

toggleMediaControlsVisiblity();

return super.onSingleTapUp(e);

}

}

@Override

public boolean onTouchEvent(MotionEvent event) {

return mGestureDetector.onTouchEvent(event);

}

以上实现方式参考了:VideoView源码及其MediaController的源码。

2、

使用MediaPlayer视频播放的时候,直接把拖动条拖动到最后,然后再往回拖动,这时奇葩的事情发生了:视频界面更换了,但是不能播放了,这是怎么回事呢?用VideoView就不会出现这个问题。差距在哪里?

关于点击seekbar可以看到画面但是不能播放的问题, 我认为你使用seekto是需要为mediaPlayer添加OnSeekCompleteListener,因为seekto是个异步方法
mediaPlayer.setOnSeekCompleteListener(new OnSeekCompleteListener() {  
    public void onSeekComplete(MediaPlayer m) {  
        m.start();  
        //isPlaying = true;  
    }  
});  
















你可能感兴趣的:(Android MediaPlayer)