java - onResume 重新开始播放背景音乐不起作用
问题描述
这是我的第一个应用程序,所以这个问题/答案可能非常基本。我目前有 onPause(); , 当播放器离开屏幕时停止播放音乐。我尝试过使用 onResume 做类似的事情,以便再次播放音乐(背景音乐)。不幸的是,这不起作用。当我按下重置按钮或返回主页并返回游戏页面时,它再次起作用。但它只是不会在应用程序回到屏幕后立即加载,就像我希望的那样。
我的代码摘录如下;
package com.example.android.buttongame;
...
公共类 MainActivity 扩展 AppCompatActivity {
...
MediaPlayer winningSound;
MediaPlayer buttonSound;
MediaPlayer backgroundMusic;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
Plays ticking background noise at the start of this activity. Set on a loop
*/
backgroundMusic = MediaPlayer.create(this, R.raw.ticking_background);
backgroundMusic.start();
backgroundMusic.setOnErrorListener(new android.media.MediaPlayer.OnErrorListener() {
public boolean onError(MediaPlayer mediaplayer, int i, int j)
{
return false;
}
});
backgroundMusic.setLooping(true);
}
@Override
public void onResume(){
super.onResume();
backgroundMusic.start();
}
public void onPause() {
super.onPause();
backgroundMusic.stop();
}
...
public void reset(View v) {
/*
Plays button sound
*/
buttonSound = MediaPlayer.create(MainActivity.this, R.raw.button_sound);
buttonSound.start();
/*
* Refreshes activity
*/
this.recreate();
}
...公共无效主页(查看视图){
/*
Stops background music
*/
backgroundMusic.stop();
/*
Plays button sound
*/
buttonSound = MediaPlayer.create(MainActivity.this, R.raw.button_sound);
buttonSound.start();
/*
Leads to home page
*/
Intent homePage = new Intent(this, HomePage.class);
startActivity(homePage);
}
}
解决方案
在 的地方backgroundMusic.stop()
,你应该使用backgroundMusic.pause()
然后你会实现你正在寻找的东西。
调用stop()
会停止播放并导致MediaPlayer
处于Started、Paused、Prepared或PlaybackCompleted状态的 a 进入Stopped状态。一旦处于Stoppedprepare()
状态,直到或被prepareAsync()
调用以将MediaPlayer
对象再次设置为Prepared状态,才能开始播放。调用对已经处于Stopped状态的对象stop()
没有影响。MediaPlayer
这是MediaPlayer
帮助您了解其API的文档。
https://developer.android.com/reference/android/media/MediaPlayer
推荐阅读
- ncrunch - 更新到最新版本 3.20 后出现 NCrunch 错误
- python - 在 Python 中生成新的 .txt 文件
- oracle - 将 ADF 从 12.2.1.2 升级到 12.2.1.3 maven 问题
- angular-reactive-forms - 角度将表单值更改为小写
- logback - 如何更改 logback LogstashSocketAppender 中的标准字段名称?
- java - ical4j - 根据 UID 查找事件
- python - Django中的多日期选择器
- c# - 如何立即执行paintevent
- content-security-policy - 内容安全政策失败和 Google 字体
- php - “/var/www/html/storage/job/12”中没有现有目录,并且它不可构建:权限被拒绝