我正在尝试遵循核心应用程序质量指南FN-A1,该说明当屏幕关闭时音频不应播放,所以我检查了它,并且在我关闭屏幕后它继续播放,但是我我不确定为什么。我不认为我正在使用某项服务,而且默认情况下MediaPlayer似乎应停止播放。谁能帮我弄清楚我做错了什么?我复制了相关的代码部分。感谢
public class RecordActivity extends BaseActivity {
MediaPlayer playback;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record);
listView = (ListView)findViewById(R.id.listView);
dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + getString(R.string.app_name));
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
String item = ((TextView) view).getText().toString();
File itemFile = new File(dir + "/" + item + ".wav");
if (itemFile.exists()) {
playback = MediaPlayer.create(getApplicationContext(), Uri.fromFile(itemFile));
try {
playback.start();
} catch (NullPointerException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), R.string.errorFileNull, Toast.LENGTH_SHORT).show();
}
}
else {
Toast.makeText(getApplicationContext(), R.string.errorNotRecorded, Toast.LENGTH_SHORT).show();
}
return true;
}
});
}
}
答案 0 :(得分:3)
你应该在onPause中停止MediaPlayer:
if (playback != null && playback.isPlaying()) {
playback.pause();
}
在onResume中恢复它:
if (playback != null && !playback .isPlaying()) {
playback.start();
}
答案 1 :(得分:0)
//更好的方法是检查
if(playback == null){
Toast.makeText(getApplicationContext(), R.string.errorFileNull, Toast.LENGTH_SHORT).show();
}