首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有WebRTC元素的<audio>音频(RTCMultiConnection)

没有WebRTC元素的<audio>音频(RTCMultiConnection)
EN

Stack Overflow用户
提问于 2014-09-16 08:02:01
回答 1查看 1.4K关注 0票数 0

即使在DOM中似乎没有插入音频元素,也会听到音频。

设想情况:

  1. 创建没有流的PeerConnection
  2. 添加流,但禁用将MediaElements (音频、视频)添加到DOM的代码

问题:

  1. 流过后,可以从耳机(或扬声器)听到声音。

应该发生什么:

  1. 由于我没有附加任何东西到多姆,我希望没有声音会被听到。

复制场景的代码

代码语言:javascript
复制
// <body>
//   <script src="https://cdn.webrtc-experiment.com/RTCMultiConnection.js"></script>
//   <button id="start">Start!</button>
// </body>

$('#start').click(function() {
  var NO_MEDIA_SESSION = {video: false, audio: false, oneway: true};

  var caller = new RTCMultiConnection('lets-try');
  caller.session = NO_MEDIA_SESSION;
  caller.dontAttachStream = true;
  caller.onstream = function() { console.log("Got stream but not attaching") };  

  var receiver = new RTCMultiConnection('lets-try');
  receiver.session = NO_MEDIA_SESSION;
  receiver.dontAttachStream = true;
  receiver.onstream = function() { console.log("Got stream but not attaching") };  

  caller.open();
  receiver.connect();

  receiver.onconnected = function() {
    console.log("Connected!");
    caller.addStream({audio: true});
  }
});

我感兴趣的是,在没有音频DOM元素的情况下,怎么可能听到MediaStream呢?如果有任何RTCMultiConnection专家回答,那么也许可以告诉我如何避免音频流被听到?(我想弄到这条小溪,然后自己接上去)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-16 08:22:26

RTCMultiConnection动态创建mediaElement,以确保只有当媒体流开始流动时才触发onstream事件。

代码语言:javascript
复制
connection.onstream = function(event) {
    event.mediaElement.pause(); // or volume=0

    // or
    event.mediaElement = null;

    // or
    delete event.mediaElement;
};

更新:

使用以下片段:

代码语言:javascript
复制
var connection = new RTCMultiConnection();

connection.session = {
    data: true
};

btnOpenRoom.onclick = function() {
    connection.open('roomid');
};

btnJoinRoom.onclick = function() {
    connection.join('roomid');
};

btnAddAudioStream.onclick = function() {
    connection.addStream({
        audio: true
    });
};

btnAddAudioVideoStream.onclick = function() {
    connection.addStream({
        audio: true,
        video: true
    });
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25863543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档