AudioManager的低级流类型有什么区别?

Kir*_*nov 10 android android-audiomanager

AudioManager中有几种流类型.它们在低水平上有何不同?是否可以使用例如AudioManager.STREAM_MUSIC来阻止输入麦克风流?或者是其他东西?

小智 12

一个最重要的区别是音量控制.
文档所述,我们可以分别为每个流设置音量或调整音量.
我们可以控制"音频聚焦",让其他应用程序停止播放或降低音量,以便我们可以在特定的流上清晰地播放声音,或者声音不会阻挡其他高优先级的声音,如电话铃声,导航语音反馈或类似的东西.

由于多个应用可能会播放音频,因此考虑如何进行互动非常重要.为避免每个音乐应用同时播放,Android使用音频焦点来调节音频播放 - 仅保持音频焦点的应用应播放音频.

其他未提及的事情是哪个音频设备会产生声音.
使用STREAM_MUSIC,声音将通过连接到手机的一个音频设备(手机扬声器,耳机,蓝牙扬声器或其他东西)产生.
使用STREAM_RING,声音将通过连接到手机的所有音频设备产生.对于每个设备,此行为可能不同.


小智 2

STREAM_ALARM        The audio stream for alarms
STREAM_DTMF         The audio stream for DTMF Tones
STREAM_MUSIC        The audio stream for music playback
STREAM_NOTIFICATION The audio stream for notifications
STREAM_RING         The audio stream for the phone ring
STREAM_SYSTEM       The audio stream for system sounds
STREAM_VOICE_CALL   The audio stream for phone calls
Run Code Online (Sandbox Code Playgroud)

来自 http://developer.android.com/reference/android/media/AudioManager.html

  • 他们的目的非常清楚。我的问题是它们在低级别上有何不同。它不可能是 10 个相同的流。 (6认同)