audio - Web Audio API 在单声道中合并音频不能完全工作
问题描述
我有一个video
和一个WebRTC
音频流,想用来Web Audio API
将音频从视频发送到左声道,而 WebRTC 到右声道。所以基本上我在做:
video = document.getElementsByTagName("video")[0]
video.src = "http://link/to/my/video"
video.load()
audioContext = new AudioContext()
videoSourceL = audioContext.createMediaElementSource(video)
#create merger with 2 inputs, left (0) and right (1)
merger = audioContext.createChannelMerger(2)
merger.connect(audioContext.destination)
#now strange work around for WebRTC
audio = new Audio();
audio.muted = true
audio.srcObject = remoteStream
audioStreamR = audioContext.createMediaStreamSource(remoteStream)
# connect remote audio stream channel 0 to input 1 (right)
audioStreamR.connect(merger, 0, 1)
#connect video source channel 0 to input 0 (left)
videoSourceL.connect(merger, 0, 0)
我遇到的问题是,尽管远程音频确实进入了右声道(并且在左声道中听不到),但来自视频的音频仍然略微存在于右声道中。所以基本上我有音频出血。奇怪的是,如果我将远程流和视频都重定向到同一个频道,那么另一个频道就会完全静音。
而如果我使用振荡器代替视频音频,我将获得完美的分离。知道我做错了什么吗?
编辑:我还尝试从操作系统音频设置关闭左声道,并且右声道的音频流停止(也在同事机器上尝试过),所以这可能是硬件/配置问题吗?
解决方案
毕竟是硬件问题,好的耳机没有效果。
推荐阅读
- dotnetnuke - 2sxc 在 BS3 Xcilion 主题上加载 BS4 模板
- python - 使用 While 循环调用列表中的值
- ruby - Ruby - 使用枚举器 CSV.open 删除 csv 文件中的行
- c# - 每次我尝试运行我的游戏时,它都会给我 2 个不同的错误
- django - Django 编辑表单不显示附件链接
- mysql - ON DELETE CASCADE 删除多余的行
- javascript - 复制值时删除格式
- arrays - 我写了一个代码来打印两个字符串集的并集和交集。我在某些部分分配了内存。最后一部分无法正常工作
- flutter - 在 Flutter 中调用 GetX 更新函数
- javascript - YouTube IFrame 播放器无法正确执行 cuePlayList