【发布时间】:2012-09-26 13:02:43
【问题描述】:
应该这么简单:
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"/>
【问题讨论】:
-
您对此有任何答案或解决方案吗?还是在媒体播放器中实现 BassBooster ?
-
其实我没有找到解决办法。我用
SoundPool完成了我的效果。 -
是的,Soundpool 很不错。但是如何对 mediaPlayer 做同样的事情呢?有什么想法吗?
-
对不起,没有。我对 SoundPool 很满意 :)
-
好的。感谢您的评论。如果您找到任何解决方案,请在此处回答。
标签: java android audio effects android-mediaplayer