这应该很简单:
private void startPlaying() {
mPlayer = new MediaPlayer();
try {
mPlayer.setDataSource(mFileName);
BassBoost bassBoost = new BassBoost(0, mPlayer.getAudioSessionId());
mPlayer.attachAuxEffect(bassBoost.getId());
bassBoost.setStrength((short)1000);
bassBoost.setEnabled(true);
mPlayer.setAuxEffectSendLevel(1.0f);
mPlayer.prepare();
mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mPlayer.start();
}
});
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
}
当我尝试时,它很安静,我在日志中得到错误(-22,0)。如果我对BassBoost bassBoost = ...
和mPlayer.setAuxEffectSendLevel
之间的行进行评论,则播放的声音就可以了。
我去了文档,但我无法解决错误。清单中的权限:
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
答案 0 :(得分:1)
创建时,您已经将媒体播放器连接到了低音增强器。请删除此行mPlayer.attachAuxEffect(bassBoost.getId());
答案 1 :(得分:0)
是的,从媒体播放器类中删除方法attachAuxEffect
,我的意思是linemPlayer.attachAuxEffect(bassBoost.getId());
其次,您可以在媒体播放器的任何状态下调用bass boost
对象,不包括空闲状态