我正在制作一个口语呼叫者姓名应用程序,该程序在使用TextToSpeech
说话者姓名之前先暂停铃声。我正在使用
Volume
int musicVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
通常,这返回0
,但有时返回15
正确的值。手机处于正常模式,并且手机音量已满。我需要此值才能正确说出呼叫者姓名,但是这种不可预测的行为使我发疯。
我在做什么错?这不是检测铃声音量的正确方法吗?
下面放置它起作用的示例,音量为0到15。
public void pegarVolume(){
AudioManager AudioManager = (AudioManager) getSystemService (Context.AUDIO_SERVICE);
int musicVolume = AudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
}
我在这里还有另一个疑问……为什么我们不使用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);
......为什么这不可能?这会产生错误。为什么?