Android 通话时请关注背景音乐
我正在开发一个应用程序。我打电话时需要放音乐。但我面临的问题是,每当我尝试在通话中播放音乐时,声音并不像没有通话时那么大。 在通话中有没有办法控制背景音乐。通话时,我的音乐音量会变小,但通话一结束,音量就会变大Android 通话时请关注背景音乐,android,call,android-audiomanager,Android,Call,Android Audiomanager,我正在开发一个应用程序。我打电话时需要放音乐。但我面临的问题是,每当我尝试在通话中播放音乐时,声音并不像没有通话时那么大。 在通话中有没有办法控制背景音乐。通话时,我的音乐音量会变小,但通话一结束,音量就会变大 final AudioManager mAudioManager = (AudioManager) ctx .getSystemService(AUDIO_SERVICE); final int originalVolume
final AudioManager mAudioManager = (AudioManager) ctx
.getSystemService(AUDIO_SERVICE);
final int originalVolume = mAudioManager
.getStreamVolume(AudioManager.STREAM_MUSIC);
mAudioManager
.setStreamVolume(
AudioManager.STREAM_MUSIC,
mAudioManager
.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
0);
mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
Class audioSystemClass = Class
.forName("android.media.AudioSystem");
Method setForceUse = audioSystemClass.getMethod(
"setForceUse", int.class, int.class);
// First 1 == FOR_MEDIA, second 1 == FORCE_SPEAKER. To go
// back to the default
// behavior, use FORCE_NONE (0).
setForceUse.invoke(null, 1, 1);
这是我的代码。我看到您正在尝试使用“将音乐流强制传送到扬声器”——我在回答中发布的方法 问题在于,在语音通话过程中,音乐流将遵循语音通话的路由,并忽略
FOR_MEDIA
强制标志。因此,您认为较低的音量很可能是通过耳机而不是扬声器播放音乐的结果
据我所知,在正在进行的通话中,如果不将语音通话转接至扬声器(即使用),则无法将音乐转接至扬声器 根据您的手机制造商/运营商实施Android AudioPolicyService的方式,当通话中的MODE_/通话中的MODE_通信处于会话状态时,某些实施会降低流式音乐音量 我还没有尝试过这个方法,但一个可行的解决方案是使用流式语音呼叫而不是流式音乐。然后,您的音频流应该与通话中的音频流一起正常播放