在Android中单击后退键并返回活动后,音乐不会播放
我正在尝试使用MediaController使用videoView播放音频。音频播放良好,当我单击后退键时,控件返回到以前的状态。但当我再次从启动屏幕选择“活动”时,会显示“活动”,但不会播放音乐。有人能帮我解决这个问题吗? 代码如下:在Android中单击后退键并返回活动后,音乐不会播放,android,Android,我正在尝试使用MediaController使用videoView播放音频。音频播放良好,当我单击后退键时,控件返回到以前的状态。但当我再次从启动屏幕选择“活动”时,会显示“活动”,但不会播放音乐。有人能帮我解决这个问题吗? 代码如下: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.vid
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video);
videoView = (VideoView)this.findViewById(R.id.videoView);
videoView.setVideoPath("http://www.pocketjourney.com/downloads/pj/video/famous.3gp");
final MediaController mc = new MediaController(this);
videoView.setMediaController(mc);
videoView.setVideoURI(Uri.parse("http://www.pocketjourney.com/downloads/pj/tutorials/audio.mp3"));
videoView.requestFocus();
videoView.start();
videoView.setMediaController(new MediaController(this)
{
public void hide()
{
System.out.println("HIDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEHELLLOO");
mc.show();
}
});
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
提前感谢如果您试图仅在活动处于前台时播放音乐,则您希望在
onResume
和onPause
中启动和停止音乐,而不是onCreate
请看下面的图片。OnCreate仅在创建活动时调用一次。如果活动进入后台然后重新出现,则可能不会调用该活动。如果您仅在活动处于前台时才尝试播放音乐,则希望在
onResume
和onPause
中启动和停止音乐,而不是onCreate
# use this code...the song plays even if the user presses his back button #
public void playAudio(){
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource("/sdcard/fileaudio.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
//playAudio();
}
});
}
public void onBackPressed() {
Intent intent = new Intent();
intent
.setAction(Intent.ACTION_MAIN)
.addCategory(Intent.CATEGORY_HOME)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
请看下面的图片。OnCreate仅在创建活动时调用一次。如果活动进入后台然后重新出现,则可能不会调用它
# use this code...the song plays even if the user presses his back button #
public void playAudio(){
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource("/sdcard/fileaudio.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
//playAudio();
}
});
}
public void onBackPressed() {
Intent intent = new Intent();
intent
.setAction(Intent.ACTION_MAIN)
.addCategory(Intent.CATEGORY_HOME)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}