getUserMedia with MediaStreamAudioSourceNode on Android Chro



我正在尝试在Android上的Chrome上使用getUserMedia的媒体流。 为了进行测试,我编写了下面的脚本,该脚本只是将输入流连接到输出。 这段代码在 Windows 下的 Chrome 上按预期工作,但在 Android 上我什么也听不到。 系统会提示用户允许麦克风访问,但扬声器、听筒扬声器或耳机插孔没有音频。

navigator.webkitGetUserMedia({
    video: false,
    audio: true
}, function (stream) {
    var audioContext = new webkitAudioContext();
    var input = audioContext.createMediaStreamSource(stream);
    input.connect(audioContext.destination);
});

此外,当调高和调低音量时,反馈发出哔哔声没有声音,就好像Chrome正在向系统播放音频一样。

Android

版 Chrome 上是否真的不支持此功能? 以下问题类似,但都没有明确的答案或解释。

  • HTML5录音在Google Nexus中没有出现
  • 在 Android 浏览器上检测对 getUserMedia 的支持失败

由于我是使用 getUserMedia 的新手,我想确保我的代码中没有可能破坏兼容性的事情。

我还应该指出,这个问题似乎不适用于getUserMedia本身。 可以在 <audio> 标记中使用 getUserMedia,如以下代码所示(利用 jQuery):

navigator.webkitGetUserMedia({
    video: false,
    audio: true
}, function (stream) {
    $('body').append(
        $('<audio>').attr('autoplay', 'true').attr('src', webkitURL.createObjectURL(stream))
    );
});
Android

上的Chrome现在正确支持getUserMedia。 我怀疑这最初与录制和播放之间的采样率差异有关(在桌面 Chrome 上表现出相同的问题)。 无论如何,所有人都在2014年2月左右开始在最新的马厩上工作。

最新更新