[英]MediaPlayer not playing when attaching BassBoost - error (-22, 0)
它應該很簡單:
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
之間的BassBoost bassBoost = ...
,它會播放聲音。
我通過文檔,但是我找不到錯誤。 清單中的權限:
<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"/>
創建好低音機時,您已經將其與mediaplayer相連。 因此,刪除此行mPlayer.attachAuxEffect(bassBoost.getId());
是的,從媒體播放器類中刪除方法attachAuxEffect
,我的意思是,這是linemPlayer.attachAuxEffect(bassBoost.getId());
其次,您可以在媒體播放器的任何狀態(不包括空閑狀態)下調用bass boost
對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.