在单个通道中合并音频的Web Audio API并不完全有效

问题描述 投票:0回答:1

我有一个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)

我遇到的问题是,虽然远程音频确实转到了正确的通道(并且在左侧听不到),但视频中的音频仍然会在右声道中略微出现。所以基本上我有音频流血。奇怪的是,如果我将远程流和视频重定向到同一个频道,那么另一个频道就会有绝对的静音。

如果我使用振荡器代替视频音频,我会有一个完美的分离。知道我做错了什么吗?

编辑:我也尝试从操作系统音频设置关闭左通道,并停止向右通道的音频流失(也在同事机器上试过),这可能是硬件/配置问题?

audio webrtc html5-audio web-audio-api
1个回答
0
投票

毕竟是硬件问题,效果不是好耳机。

© www.soinside.com 2019 - 2024. All rights reserved.