2011-12-15 27 views
4

私はMediaControllerを使って音楽を再生しようとしています。 "戻る"ボタンが押されるまで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; 
} 
}; 

しかし、それはまだ1つのトラブルのMediaControllerが見える中。 MediaControllerが画面に触れるように見えると、MediaControllerが非表示になります。 また、私はすでにコードの下に試してみてください。

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

しかし、それは動作しませんでした。 文字列がLogcatに表示されませんでした。 誰かがそれをする考えがありますか?

答えて

12

オーバーライドし、この方法も、メディアコントローラ

@Override 
      public void hide() { 
       // TODO Auto-generated method stub 
       super.show(); 
      } 
+0

コードされます私のために便利です。 – brian

+2

@このコードを使用していることを確認するメディアcontollersは隠れているわけではありませんが、バックプレスの活動では何も考えていません。 –

5

内部の非表示()メソッドを維持したいが、コントロールが使用されるたびに消えコントローラを持っていない場合は、次の

this.mediaController = new MediaController(this){ 
    @Override 
    public void show(int timeout) { 
     super.show(0); 
    } 
}; 
+0

これは最高の答えです。非表示にすることはできません。ありがとう。 – Shirane85

+0

これは動作しません。 –

+0

これは2年前のことであり、時代遅れの可能性があります。 ご迷惑をおかけして申し訳ありません。 – NBcrafts

関連する問題