播放音频文件时,我将声音从外部扬声器切换到内部扬声器(耳朵扬声器)。音频通过SimpleExoPlayer播放。切换由USAGE_VOICE_COMMUNICATION属性发生。声音通过听筒开始播放,但该声音的音量不受系统音量按钮控制,系统中媒体的音量会发生变化。
我尝试将setContentType设置为CONTENT_TYPE_SPEECH,问题仍然存在。
问题在谷歌Pixel XL(Android10)、一加7t(Android10)上反复出现。但在三星Galaxy S9 (Android 10)上没有重复。
做这样的切换,让正确的扬声器音量发生变化的正确方法是什么?
这是我的属性:
private fun setupAttributesWithExternalSpeaker() {
val audioAttributes = AudioAttributes.Builder()
.setContentType(C.CONTENT_TYPE_MUSIC)
.setUsage(C.USAGE_MEDIA)
.build()
simpleExoPlayer.setAudioAttributes(audioAttributes, true)
}
private fun setupAttributesWithInternalSpeaker() {
val audioAttributes = AudioAttributes.Builder()
.setContentType(C.CONTENT_TYPE_MUSIC)
.setUsage(C.USAGE_VOICE_COMMUNICATION)
.build()
simpleExoPlayer.setAudioAttributes(audioAttributes, false)
}
这里是一个完整的球员级别
用AudioManager.setMode怎么样
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_IN_COMMUNICATION);
我正在使用OpenSL ES播放音频剪辑。在我的代码中,我有 在插入耳机时强制音频通过扬声器。它工作正常,但我无法控制音量。在播放剪辑时按下音量按钮会使音量搜索栏出现并移动,但音量不会改变。播放前调用或似乎没有帮助。更改我的应用程序之外的任何音量(例如在Android设置中)不会影响播放音量。当没有应用路由时,音量控制在耳机和扬声器上都可以正常工作。 我还尝试使用在另一个答案中找到的代码将音频发送
我试图让用户能够在我的应用程序中切换音频输出,我可以使用AVAudioSession在扬声器和背部之间切换,但我找不到在连接的蓝牙设备和耳机之间切换的方法,以任何顺序。 谢谢你的帮助。
所需功能: 它有点像iPhone本机手机应用程序。当有蓝牙/耳机连接到iPhone时,扬声器按钮(通常只有扬声器/手机切换)将显示所有可用的音频输出设备。默认使用蓝牙。用户可以选择其他设备播放声音。 问题: > 如何更新路由并将音频输出设置为所选设备? 请注意,AudioSessionGetProperty AND AudioSessionSetProperty的现有解决方案可能并不理想,因为iO
我想用插入式耳机通过扬声器播放音频文件。 但我得到了 IllegalStateException 有什么想法可以解决这个问题吗?
是否可以通过Android设备的手机扬声器播放音频?手机内部较小的扬声器,可产生低音量声音,只有在将耳朵贴在电话上时才能听到。 希望我的描述足够清楚,可以理解我的问题。 如果可能的话,一个如何实现这一点的例子将非常有帮助。 目前我正在使用下面的代码初始化我的MediaPlayer。
我正在开发一个应用程序,根据特定的间隔播放一些声音。我让用户控制这些声音的音量。告诉现在它是好的,声音音量级别是作为用户选择之前。但这里的问题是,设备的音量水平也发生了变化。问题是:如何在不影响设备声级的情况下以我的音量水平播放我的声音? 更新:根据Biraj解决方案,要获得每个设备的最大允许卷,使用int streamMaxVolume而不是MAX_VOLUME变量。所以完整的答案是: