这个问题可能是以下问题的重复:
How to play an audio file on a voice call in android
Background Audio for a Call in Progress - Possible?
这些问题的答案表明,在android中无法在语音呼叫中播放预先录制的音频。我想知道为什么不可能?限制是什么(硬件/软件)?这真的是一种限制还是有意为之?我们可以修改android的源代码以使其成为可能吗?
发布于 2015-01-16 17:59:25
由于Android中音频路由的优先级,这是与软件相关的。在CallManager中,您可以深入研究setAudioMode()
方法。将音频模式设置为MODE_IN_COMMUNICATION
后,将调用以下代码
audioManager.requestAudioFocusForCall(AudioManager.STREAM_VOICE_CALL,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
从这一点上讲,电话服务具有最高优先级,不会让任何其他音频并行播放。
发布于 2015-01-16 14:42:24
注意:您只能在标准输出设备上播放音频数据。目前,这是移动设备扬声器或蓝牙耳机。您不能在呼叫过程中播放对话音频中的声音文件。
请参阅官方链接http://developer.android.com/guide/topics/media/mediaplayer.html
发布于 2015-01-17 15:33:23
通过实现AudioManager.OnAudioFocusChangeListener,您可以获得音频管理器的状态。因此,如果在后台播放任何音乐,您可以获得类似的AudioManager状态(播放和暂停完全掌握在开发人员手中)......
在android设备中的一些原生音乐播放器在处理这个问题时,他们会限制音乐在TelephonyManager.EXTRA_STATE_OFFHOOK.so中。这个场景也完全掌握在开发人员手中(无论是否处理),如果他不处理这两个都将并行播放y。
https://stackoverflow.com/questions/27602114
复制相似问题