繁体   English   中英

音量在Android上不起作用

[英]sound volume not working on Android

我有一个在Android上产生声音的应用程序,我的代码是在所有音频流上设置音量,以确保所有流都设置了音量。 这是这些流:

STREAM_MUSIC
STREAM_RING
STREAM_ALARM
STREAM_NOTIFICATION
STREAM_VOICE_CALL
STREAM_DTMF
STREAM_SYSTEM

如果我使用以下方法更改音量:

audioMgr.setStreamVolume(audioStream, newVolume, 0);

我看不到音量正在更改,它会播放默认音量,但是使用上述方法更改了触摸音量。 这是该代码:

HashMap<Integer, Integer> maxVolumeMap= new HashMap<Integer, Integer>();
AudioManager audioMgr = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
maxVolumeMap.put(AudioManager.STREAM_MUSIC,audioMgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
maxVolumeMap.put(AudioManager.STREAM_RING,audioMgr.getStreamMaxVolume(AudioManager.STREAM_RING));
maxVolumeMap.put(AudioManager.STREAM_ALARM,audioMgr.getStreamMaxVolume(AudioManager.STREAM_ALARM));
maxVolumeMap.put(AudioManager.STREAM_NOTIFICATION,audioMgr.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION));
maxVolumeMap.put(AudioManager.STREAM_VOICE_CALL,audioMgr.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL));
maxVolumeMap.put(AudioManager.STREAM_DTMF,audioMgr.getStreamMaxVolume(AudioManager.STREAM_DTMF));
maxVolumeMap.put(AudioManager.STREAM_SYSTEM,audioMgr.getStreamMaxVolume(AudioManager.STREAM_SYSTEM));
int newVolume = 7; //this is new volume value
Iterator<Integer> itr = maxVolumeMap.keySet().iterator();
while (itr.hasNext())
{
    //set new volume for all audio streams
    int audioStream = itr.next();
    float deviceVolume = (float)(newVolume/10.0f) *maxVolumeMap.get(audioStream);
    audioMgr.setStreamVolume(audioStream, Math.round(deviceVolume), 0);
}

这里可能会发生一些事情。 首先,检查您的目标设备没有固定的音量策略。 AudioManager.setStreamVolume()所述

如果设备执行isVolumeFixed()指示的固定音量策略,则此方法无效。

接下来,请确保您未将音量设置为超出最大设置。 您可以使用AudioManager.getStreamMaxVolume()查找该数字。

如果这两个都不是问题,则必须发布一些有关如何使用API​​的代码。

要在android中管理音量,请转到以下链接:

  1. http://developer.android.com/training/managing-audio/volume-playback.html

  2. 在Android中使用SeekBar控制音量?

    希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM