4

我尝试使用 MediaController 播放音乐。我希望 MediaController 出现,直到按下“后退”按钮。现在我尝试下面的代码:

MediaController mediaController = new MediaController(this){
@Override
public void setMediaPlayer(MediaPlayerControl player) {
super.setMediaPlayer(player);
this.show();
}
@Override
public void show(int timeout) {
super.show(0);
}
//instead of press twice with press once "back" button to back
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
Activity a = (Activity)getContext();
a.finish();
}
return true;
}
}; 

但是当 MediaController 可见时它仍然是一个麻烦。当 MediaController 出现触摸屏时,MediaController 将隐藏。我也已经尝试过以下代码:

@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d("screen","touch");
return true;
}

但它没有用。该字符串未显示在 Logcat 中。有人有想法吗?

4

2 回答 2

13

在媒体控制器内部也覆盖此方法

@Override
            public void hide() {
                // TODO Auto-generated method stub
                super.show();
            }
于 2011-12-15T06:33:26.827 回答
8

如果您想保留 hide() 方法但不让控制器在每次使用控件时消失:

this.mediaController = new MediaController(this){
    @Override
    public void show(int timeout) {
        super.show(0);
    }
};
于 2015-04-15T16:48:56.673 回答