我有一个应用程序,我将同时播放2个音频文件,用户将试图听到一个(说出的话)而另一个(背景噪音)。通过成功的反馈输入,他们正确地听到了文件,我想减少2个文件的1(单词)的音量并再次播放,他们将尝试通过噪音听到它。我只想减少一个文件的音量...另一个需要保持不变(否则它会失败试图听到另一个文件的目的)。到目前为止,我用MediaManager找到的是能够改变应用程序的全局音量而不是应用程序中的特定音频剪辑。
非常感谢任何帮助。
答案 0 :(得分:0)
我对媒体播放器全球化的印象不正确。您可以设置此文件的音量,即使播放更响亮或更安静的文件(即使使用相同的mp),它也会保留该音量。 oncompletion listener对于释放文件非常重要,因为在其他情况下,你会获得异常并丢失所有声音。对数数学函数对于使体积在0和0之间适当地缩放是很重要的。 100。
假设MAX_VOLUME为100:
mp = MediaPlayer.create(getApplicationContext(), R.raw.noise);
final float noisevolume = (float) (1 - (Math.log(MAX_VOLUME - 50) / Math.log(MAX_VOLUME)));
mp.setVolume(noisevolume, noisevolume);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});