Chrome的TabCapture API无法在标签上录制所有音频

时间:2018-07-18 21:29:46

标签: javascript google-chrome google-chrome-extension webrtc

我正在开发一个扩展程序将记录并保存标签的应用程序。选项卡记录部分非常容易工作,但是由于某种原因,选项卡记录没有保存我从webrtc获得的远程音频(它确实记录了选项卡正在发出的其他声音)。

这是我开始录制标签的方法:

    chrome.tabCapture.capture({audio: true, video: true}, function(stream) {
      if (!stream) {
        console.error('Couldn\'t obtain stream.');
      }

      mediaRecorder = new MediaRecorder(stream, {mimeType: 'video/webm'});
      mediaRecorder.start();
      mediaRecorder.ondataavailable = function(event) {
        if (event.data.size > 0) {
          recordedChuncks.push(event.data);
        }
      }
    });

录制中缺少的音频项目的设置如下:

    <audio
      id="remoteAudio"
      ref={el => {
        this._remoteAudio = el;
      }}
      autoPlay
      playsInline
    />

此音频要素是从远程视频流(this._remoteAudio.srcObject = remoteMediaStream)中获取的。

我不确定是否遗漏了某些东西,或者也许目前无法做到这一点。

1 个答案:

答案 0 :(得分:0)

Google Chrome开发人员在this post中写了一篇博客文章,内容介绍如何使用 MediaStream Recording API

使用MediaRecorder录制音频和视频

  

MediaRecorder API 使您可以从   网络应用。现在可以在Firefox和适用于Android的Chrome浏览器中使用,   桌面。 •在Firefox和Chrome 49及更高版本中可以进行录音;   Chrome 47和48仅支持视频录制。

SO post可能还会提供其他见解。