gpt4 book ai didi

javascript - 使用 AudioContext.createMediaStreamSource 与 HTMLAudioElement.srcObject 播放 MediaStream

转载 作者:行者123 更新时间:2023-12-03 00:10:23 29 4
gpt4 key购买 nike

我正在尝试使用 Web Audio API 从远程对等点 (WebRTC) 播放 MediaStream。当我使用 audio.srcObject = stream 将流附加到 audio 元素时,它播放正常,但是当我尝试使用 AudioContext 时,它根本不播放任何声音(我需要以避免 audio/video HTML 标记)。

这件作品有效:

<audio controls>
<script>
const audioEl = document.getElementsByTagName('audio')[0];
audioEl.srcObject = MY_STREAM;
audioEl.play();
</script>

这个没有:

const audioContext = new AudioContext();
const sourceNode = audioContext.createMediaStreamSource(MY_STREAM);
sourceNode.connect(audioContext.destination);
// Trying even 'audioContext.resume()' after user gesture with no luck

奇怪的是,当 MY_STREAM我的麦克风时,它可以很好地播放 Web Audio API(我听到来自麦克风的反馈)。

所以这表明麦克风 MediaStream 和我从 WebRTC 连接获得的 MediaStream 之间存在一些不同,但为什么它可以播放简单的 HTML audio 标记?

最佳答案

demonstrated by @jib ,这是一个 Chrome 错误。
我开了new issue让他们知道这件事。

我想我找到了一个解决方法,只需将此 MediaStream 分配给虚拟 HTMLAudioElement 的 srcObject 即可,

new Audio().srcObject = mediaStream;

但不知何故,在我的本地主机上测试时,它没有及时持续,而在 this fiddle 中确实如此。

我在玩游戏时还遇到了很多其他奇怪的行为,比如不同的选项卡与其他选项卡发生冲突之类的事情。

添加到 other non-fixed bugs在让我想到误报和总而言之的领域,我担心除了等待他们修复它之外没有其他适当的解决方案......

关于javascript - 使用 AudioContext.createMediaStreamSource 与 HTMLAudioElement.srcObject 播放 MediaStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54761430/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com