【问题标题】:Desktop Capture with Audio带音频的桌面捕获
【发布时间】:2015-01-21 14:45:29
【问题描述】:

我正在开发一个捕获用户屏幕并将屏幕发送给另一个用户的 Web 应用程序。到目前为止,我的桌面捕获工作得很好,为此我使用了 peer.js。现在我也想将来自用户麦克风的音频添加到流中。所以我认为在 getUserMedia 调用中将音频变量设置为 true 一样简单,但这只会给我留下一个错误。有什么想法吗?

function startScreenStreamFrom(streamId) {
navigator.webkitGetUserMedia({
   audio: true,
   video: {
      mandatory: {
        chromeMediaSource: 'desktop',
        chromeMediaSourceId: streamId,
        maxWidth: window.screen.width,
        maxHeight: window.screen.height
                 }
         }
},

function(screenStream) {
  stream = screenStream;
  videoElement.src = URL.createObjectURL(screenStream);
  videoElement.play();
  videoplaying = true;
  broadcaststarted = true;
},

function(error) {
  console.log('getUserMedia failed!: ' + error);
});
}

这会导致导航用户媒体错误。

【问题讨论】:

  • 您的麦克风连接正确且 webrtc 可以访问它?
  • 是的,有一个麦克风连接,但我怎么知道 webrtc 是否能够访问它?
  • 你可以单独请求麦克风,看看你是否能得到流。
  • 如何申请麦克风?我认为一旦音频设置为 true,它就会自动请求麦克风。
  • 确实如此,但要单独这样做,以确定您的麦克风是否有问题。此外,Chrome 已经更新了他们访问桌面的方式,并且必须通过插件来完成。这个 SO 问题可能会为桌面捕获提供指导:stackoverflow.com/questions/25763088/…

标签: javascript audio video web webrtc


【解决方案1】:

由于某种原因,您不能同时共享屏幕和音频。解决此问题的一种方法是拥有两个单独的流,并将视频流加载到一个视频元素中,将音频加载到一个单独的音频元素中。或者,如果您希望将它们都加载到视频元素中。

【讨论】:

  • 您好 Collin,您能否分享 navigation.GetUserMedia 的解决方案或步骤/设置?我知道已经一年多了,但我绝对可以试试你的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
相关资源
最近更新 更多