原因:在提现金额成功时播放一段一秒钟的音频,资源目录下有其余多个音频也一并播放了
解决方法
1、初始化MediaPlayer创建完成先调用stop方法
2、在Activity销毁时调用AssetManager close()方法
private MediaPlayer playRing() {
MediaPlayer player = null;
try {
player = new MediaPlayer();
player.stop();
assetManager = getAssets();
AssetFileDescriptor fileDescriptor = assetManager.openFd("withdraw_voice.mp3");
player.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(),
fileDescriptor.getLength());
player.prepare();
player.start();
} catch (IOException e) {
e.printStackTrace();
}
return player;
}
@Override
protected void onDestroy() {
super.onDestroy();
if (assetManager != null) {
assetManager.close();
}
}
总结:在小米手机上通过getAssets()方法获取到的是当前项目下的所有资源,通过assetManager.openFd("withdraw_voice.mp3"),并未获取到当前指定文件,可能是小米系统bug
网友评论