0

我有一个应用程序,我将同时播放 2 个音频文件,用户将尝试听到一个(口语)而不是另一个(背景噪音)。通过他们正确听到文件的成功反馈输入,我想降低 2 个文件中 1 个(单词)的音量并再次播放,他们会尝试在噪音中听到它。我只想降低一个文件的音量......另一个需要保持不变(否则它会破坏尝试听到另一个文件的目的)。到目前为止,我发现 MediaManager 能够更改应用程序的全局音量,而不是应用程序中的特定音频剪辑。

任何帮助是极大的赞赏。

4

1 回答 1

0

我认为媒体播放器是全球性的印象是不正确的。您可以设置此文件的音量,即使您播放更大或更安静的文件(即使使用相同的 mp),它也会保持该音量。oncompletion 侦听器对于释放文件很重要,否则您将获得异常并失去所有声音。对数数学函数对于使音量在 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();
            }
        });
于 2013-06-18T20:32:57.003 回答