Android mediaPlayer和蓝牙汽车/耳机电话

时间:2016-10-15 14:59:12

标签: android bluetooth android-audiomanager headset

我有一个基于webrtc的应用,需要作为默认的通话应用。 呼叫中有两种状态:Initiator(1),. Initiator(2)。当我处于状态1时,app必须通过耳机播放声音,并通过电话扬声器播放状态2,这可以通过

实现
audioManager.setSpeakerphoneOn(boolean value)

但似乎这仅适用于MediaStream.MUSIC类型。无论如何,它就像电话系统上的魅力一样,当我们有蓝牙设备时就会出现麻烦,例如蓝牙耳机。 setSpeakerPhone将忽略蓝牙设备并从手机耳机/扬声器播放声音。好的,我可以检查是否有任何蓝牙设备连接到手机,只是播放没有setSpeakerPhone的声音,这不是问题。我仍然可以通过MUSIC流播放声音。但是,如果设备连接到汽车,这将无法正常工作。 Car似乎只能使用AudioManager.STREAM_RING。我根本无法理解这一点。在android中模拟本机调用的最佳实践是什么?我需要通过听筒/扬声器播放声音并在RING流中播放,但它根本不起作用,有没有人曾经击败过这个任务?

  mediaPlayer = MediaPlayer.create(ctx, res);
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    audioManager.setMode(AudioManager.STREAM_MUSIC);
    if (isIniator) {
        playFromSpeakephone(false);
    } else {
        playFromSpeakephone(true);
    }
    mediaPlayer.start();

0 个答案:

没有答案