【问题标题】:Android - Getting audio to play through speakersAndroid - 让音频通过扬声器播放
【发布时间】:2012-12-03 23:46:09
【问题描述】:

当用户接听电话时,我想播放具有相同扬声器和音量的 mp3 音频文件。 我正在使用以下代码

int result = audioManager.requestAudioFocus(afChangeListener,
                    AudioManager.MODE_IN_CALL,
                    AudioManager.AUDIOFOCUS_GAIN);
audioManager.setSpeakerphoneOn(true);

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 

在清单中

但它不起作用。音量非常高。 有什么想法吗?

【问题讨论】:

    标签: android audio


    【解决方案1】:

    setSpeakerPhoneOn 的呼叫(很可能)会将音乐和语音呼叫路由到扬声器,在这种情况下,它们可能会混合在一起,并且音乐可能会被下采样到语音呼叫采样率(8 或 16 kHz)。

    您可以尝试的一件事是我在how to turn speaker on/off programatically in android 4.0 中提出的建议 这可以让您只将音乐路由到扬声器,而将语音通话音频路由到听筒。但不能保证在所有设备上都能正常工作。

    【讨论】:

    • 我正在为博物馆编写语音导览。音频指南的内容保存在 mp3 文件中。我希望这个音频文件的播放与电话的音量相同,以便用户必须将手机移到耳朵附近。我没有播放任何音乐
    • 好的,这里不涉及实际的语音通话。在我看来,您真正想要的是将音乐路由到听筒。在这种情况下,您可以尝试摆脱对 setSpeakerPhoneOn 的调用,而是在 MediaPlayer 对象上调用 setAudioStreamType,并将流类型设置为 STREAM_VOICE_CALL。这应该将音频从该 MediaPlayer 路由到语音呼叫将路由到的同一设备。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多