如何控制不同MediaPlayer对象的音量?

时间:2014-08-13 00:10:53

标签: android android-mediaplayer

我正在创建一个应用程序,我的活动中有三个MediaPlayer对象。 Ler's称他们为mp1,mp2和mp3。

我正在同时播放所有3个MediaPlayers,因此用户应该能够设置每个声音的响度。

这就是我尝试这样做的方式:

mp1.setVolume(volume1, 100);
mp2.setVolume(volume2, 100);
mp2.setVolume(volume3, 100);

volume1,volume2和volume3是用户使用SeekBar设置的变量。我不确定setVolume()是如何工作的,所以我猜测第一个数字应该是多么响亮,第二个应该是最大值。

但是,这根本不起作用,无论这些值是什么,每次声音都是相同的。有人能告诉我如何控制每个3个MediaPlayers的音量?

1 个答案:

答案 0 :(得分:2)

根据documentation,您需要将set volume变量作为setVolume()方法中的两个参数传递。这样,左右通道卷都被设置。此外,此值应介于0.0和1.0之间,而不是0-100(基于我在示例代码中看到的内容)。但是,您可以通过将其除以float:

,轻松地将0到100之间的整数转换为0.0到1.0之间的整数
float volume1F = (float) volume1/100;

然后,您可以这样设置音量:

mp1.setVolume(volume1F, volume1F);