首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WebRTC不适用于AudioContext

WebRTC不适用于AudioContext
EN

Stack Overflow用户
提问于 2017-01-21 20:30:20
回答 1查看 2.9K关注 0票数 5

我正在使用WebRTC制作音频聊天网站。我有一个问题。

当接收到来自对等方的远程音频时。这不起作用(我听不到任何声音)

代码语言:javascript
运行
复制
var audioContext = new AudioContext();
var audioStream = audioContext.createMediaStreamSource(e.stream);
audioStream.connect(audioContext.destination);

虽然这是可行的

代码语言:javascript
运行
复制
var audio2 = document.querySelector('audio#audio2');
audio2.srcObject = e.stream;

我之所以需要这样做,是因为我需要能够控制音频(效果、音量),正如我所知,AudioContext提供了这个功能。但出于某种原因,它不起作用。有什么建议吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-21 20:40:33

.createMediaStreamSource().createGain()结合使用

代码语言:javascript
运行
复制
var ctx = new AudioContext();
var source = ctx.createMediaStreamSource(stream);
var gainNode = ctx.createGain();
gainNode.gain.value = .5; 
source.connect(gainNode);
source.connect(ctx.destination);

jsfiddle https://jsfiddle.net/tkw13bfg/2

或者,创建一个AudioNode,使用.createGain()

代码语言:javascript
运行
复制
var ctx = new AudioContext();
var audio = new Audio();
audio.srcObject = stream;
var gainNode = ctx.createGain();
gainNode.gain.value = .5;   
audio.onloadedmetadata = function() {
  var source = ctx.createMediaStreamSource(audio.srcObject);
  audio.play();
  audio.muted = true;
  source.connect(gainNode);
  gainNode.connect(ctx.destination);
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41784137

复制
相关文章

相似问题

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