Android:MediaPlayer setVolume功能不起作用

时间:2015-01-22 11:20:27

标签: android android-mediaplayer

我正试图通过STREAM_SYSTEM

上的媒体播放器播放声音

使用

mediaPlayer.setVolume(1.0f , 1.0f);

mediaPlayer.setVolume(0.90f , 0.90f);

但是根据设置中的硬件音量控制它正在播放。

基本上这条线没有效果。

我添加了

permissions "Modify..." as well in Manifest

但我在stackoverflow中看到了这个API工作的链接。

我不想去API

AudioManager.setStreamVol()....

因为它为所有应用设置了流量

这个setVol API无法解决的问题是什么?

任何人都可以提供工作样本链接吗?

4 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。我认为如果我使用0.5f作为参数,我可以分辨出来。我试过0.2f,仍然没有区别。所以我认为确实存在问题。我终于尝试了0.02f以防万一,最后我的音量较低。

<强>示例:

替换你的

mediaPlayer.setVolume(0.90f , 0.90f);

mediaPlayer.setVolume(0.09f , 0.09f);

答案 1 :(得分:0)

AudioManager audioManager;
int actualVolume;
audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
actualVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, actualVolume + 1, AudioManager.FLAG_SHOW_UI);

以上代码取自我的工作项目,用于增加系统的音量(我将其用于电视)。您可以使用actualVolume - 1降低音量。

答案 2 :(得分:0)

您必须将音量值设置在0.0f和1.0f之间。所以1.0f是100%的音量。因为你的生产线没有效果。

答案 3 :(得分:-1)

使用AudioManager可以控制媒体播放器的音量。

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);

也来自MediaPlayer(但我没有尝试过)

public void  setVolume  (float leftVolume, float rightVolume)

自:API级别1:

设置此播放器的音量。建议使用此API来平衡应用程序中音频流的输出。除非您正在编写用于控制用户设置的应用程序,否则应优先使用此API,以设置特定类型的所有流的卷的setStreamVolume(int,int,int)。请注意,传递的卷值是原始标量。 UI控件应该以对数方式进行缩放。

<强>参数:

leftVolume留下音量标量

rightVolume右卷标量