我试图添加过滤效果的音频流,我已经在我的网站上播放。我能够连接Tone.js库到音频流,但我没有听到在网站上播放的音频流的任何变化。我没有在控制台中看到任何错误,我已经尝试将过滤器从50调整到5000,但是似乎没有任何影响音频。我需要设置new Tone.Player()才能真正听到声音吗?如果是这样的话,如果没有现有音频元素的src,如何设置播放器。
$('#testBtn').click(async function () {
const audioElement = document.getElementById('theAudioStream');
const mediaElementSource = Tone.context.createMediaElementSource(audioElement);
const filter = new Tone.Filter(50, 'lowpass').toDestination();
Tone.connect(mediaElementSource, filter);
await Tone.start();
console.log("Started?");
});我试图修改的音频流是从JsSip调用中设置的。启动流的代码如下:
var audioStream = document.getElementById('theAudioStream')
//further down in code
currentSession.answer(options);
if (currentSession.connection) {
currentSession.connection.ontrack = function (e) {
audioStream.srcObject = e.streams[0];
audioStream.play();
}
}在调用启动后,我单击测试按钮,以便在初始化Tone.js过滤器之前知道音频流的存在。
发布于 2022-02-23 14:01:30
工作解决方案:
将audioStream.play()从应答调用的位置移除解决了这个问题。
我不知道这解决问题的确切原因(它甚至可能是一个解决办法),但经过多次尝试和错误之后,这种方式允许可以使用音频来实现。
欢迎任何其他解决方案。
https://stackoverflow.com/questions/71159483
复制相似问题