【问题标题】:Web Audio API merging audio in single channel doesn't fully workWeb Audio API 在单声道中合并音频不能完全工作
【发布时间】:2019-07-28 16:34:43
【问题描述】:

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

我遇到的问题是,尽管远程音频确实进入了右声道(并且在左声道中听不到),但来自视频的音频仍然略微存在于右声道中。所以基本上我有音频出血。奇怪的是,如果我将远程流和视频都重定向到同一个频道,那么另一个频道就会完全静音。

如果我使用振荡器代替视频音频,我将获得完美的分离效果。知道我做错了什么吗?

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

【问题讨论】:

  • 你试过不同的浏览器吗?是否涉及本地麦克风?
  • 是的,我在 Firefox 中有确切的行为。来自麦克风的音频只能作为 WebRTC 流在接收方听到。

标签: audio webrtc html5-audio web-audio-api


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多