audioManager.getStreamVolume(AudioManager.STREAM_MUSIC)返回0

问题描述 投票:3回答:1

我正在制作一个口语呼叫者姓名应用程序,该程序在使用TextToSpeech说话者姓名之前先暂停铃声。我正在使用

检测当前的Volume
int musicVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

通常,这返回0,但有时返回15正确的值。手机处于正常模式,并且手机音量已满。我需要此值才能正确说出呼叫者姓名,但是这种不可预测的行为使我发疯。

我在做什么错?这不是检测铃声音量的正确方法吗?

android ringtone android-audiomanager
1个回答
1
投票

下面放置它起作用的示例,音量为0到15。

public void pegarVolume(){

    AudioManager AudioManager = (AudioManager) getSystemService (Context.AUDIO_SERVICE);
    int musicVolume = AudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
}

0
投票

我在这里还有另一个疑问……为什么我们不使用AudioManager类的对象而不是AudioManager.STREAM_MUSIC?

AudioManager audioManager=(AudioManager) getSystemService(AUDIO_SERVICE);
int current_volume=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

AudioManager.STREAM_MUSIC基本上是什么意思??它是AudioManager类的属性,如果是的话,那为什么我们不使用创建的对象audioManager访问它呢?

最后我的问题是:

AudioManager audioManager=(AudioManager) getSystemService(AUDIO_SERVICE);
int current_volume=audioManager.getStreamVolume(audioManager.STREAM_MUSIC);

......为什么这不可能?这会产生错误。为什么?

© www.soinside.com 2019 - 2024. All rights reserved.