当前位置: 首页 > 知识库问答 >
问题:

Android API设置音量级别

秦飞航
2023-03-14

我们可以使用哪个Android API来设置我的平板电脑上的音量级别,以便在插入耳机时播放音调。目前我使用以下API,当耳机插入时似乎不起作用。

audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 9, AudioManager.FLAG_SHOW_UI);

我做了以下设置,以便在耳机插入时通过扬声器路由音频(这是我的应用程序的要求)< code > audio manager . set mode(audio manager。模式_通话中); < code > audio manager . setspeakerphoneon(true);

当我在此设置后播放所需的音调时,音频通过扬声器传送(即使耳机已连接),但音量太高,这看起来像<code>setStreamVolume

是否有其他API可用于在Android系统中设置耳机插入时播放铃声的音量?

共有1个答案

汲雅珺
2023-03-14

除非您的应用程序是蜂窝电话的替代品,否则使用MODE_IN_call实际上会优化蜂窝电话音频并耗尽资源上的STREAM_MUSIC。如果您在MODE_IN_CALL中使用STREAM_MUSIC audio,根据AudioPolicyManagerBase的手机制造商/运营商扩展,您将看到许多奇怪的行为,例如您可能看到的情况。

首先,请确保指定在STREAM_MUSIC播放音频。因此,您的音量控制确实在控制正确的流。

其次,我建议使用MODE_ IN_。许多特定于制造商/运营商的音频策略仅针对MODE_ IN_。

第三,如果这种情况仍然存在,你应该在不同的手机制造商/运营商上测试你的应用程序,以隔离问题。有时它是一个特定于设备的缺陷,您无法修复。我自己也见过这样的案例。

 类似资料:
  • 函数名称:设置闹钟音量 函数功能:设置闹钟音量大小 函数方法 device.setAlarmVolume(vol) 参数 类型 必填 说明 vol number 是 闹钟音量,范围 0~100 函数用例 --不同设备范围可能不同 device.setAlarmVolume(7) vol = device.getAlarmVolume() dialog(vol,5000) 注意事项 目前积木编程函

  • 我正在写一个测试听力的简单应用程序,我正在用AudioTrack生成纯音。因为这是一个测试听力的应用程序,我使用非常低的音量水平来播放这些音调。 要设置卷I使用AudioTrack的setVolume(float volumeValue)方法,其中volumeValue=0-1。 我注意到我可以得到一个设备播放的最低音量约为~5.011872E-5。如果我尝试以较低的音量播放声音-例如4.4668

  • 我正在开发一个应用程序,根据特定的间隔播放一些声音。我让用户控制这些声音的音量。告诉现在它是好的,声音音量级别是作为用户选择之前。但这里的问题是,设备的音量水平也发生了变化。问题是:如何在不影响设备声级的情况下以我的音量水平播放我的声音? 更新:根据Biraj解决方案,要获得每个设备的最大允许卷,使用int streamMaxVolume而不是MAX_VOLUME变量。所以完整的答案是:

  • 获取设备音量 API 说明 先通过 SDK API 请求获取设备音量,再监听 SDKVolumeChange 来接收设备音量。 参数说明 字段 类型 必须? 说明 deviceId String 是 设备ID 举个大栗子: Kotlin val deviceId = "XXX" RokidMobileSDK.device.getVolume(deviceId) @Subscribe fun on

  • 问题内容: 我一直在寻找一个简单的C代码示例来设置ALSA混音器的主音量,但对于此所谓的常见操作找不到任何简单的东西。 我完全不熟悉ALSA,因此,我自己做一个最小的例子将需要一些时间。如果有人可以提供,我将很高兴。 问题答案: 以下对我有用。参数量应在[0,100]范围内。当心,没有错误处理!

  • 播放音频文件时,我将声音从外部扬声器切换到内部扬声器(耳朵扬声器)。音频通过SimpleExoPlayer播放。切换由USAGE_VOICE_COMMUNICATION属性发生。声音通过听筒开始播放,但该声音的音量不受系统音量按钮控制,系统中媒体的音量会发生变化。 我尝试将setContentType设置为CONTENT_TYPE_SPEECH,问题仍然存在。 问题在谷歌Pixel XL(Andr