gpt4 book ai didi

javascript - 将 MediaElementAudioSourceNode 转换为 AudioBufferSourceNode

转载 作者:行者123 更新时间:2023-11-28 06:06:39 25 4
gpt4 key购买 nike

如果您想解码音频数据,createMediaElementSource() 在移动设备上不起作用,但是 createBufferSource() 方法可以正常工作:

此代码在网络浏览器中可以正常工作,但在移动设备中不能正常工作:

var audioSource = new Audio();
audioSource.src= "Test.mp3";
var audioCtx = new AudioContext();
var sourceT1 = audioCtx.createMediaElementSource(audioSource); //This is the source audio
//My Decoding...

此代码适用于 Web 和移动浏览器:

var audioSource = new Audio();
var audioCtx = new AudioContext();
var sourceT2 = audioCtx.createBufferSource(); //This is the source audio
request = new XMLHttpRequest();
request.open('GET', 'Test.mp3', true);
request.responseType = 'arraybuffer';
request.onload = function() {
var audioData = request.response;
audioCtx.decodeAudioData(audioData, function(myBuffer) {
sourceT2.buffer = myBuffer;
//My Decoding...
},
function(e){"Error with decoding audio data" + e.err});
}

就我而言,我有一个来自要解码的视频播放器的音频源,它是一个 MediaElementAudioSourceNode,我需要将其转换为 AudioBufferSourceNode 以便让我的代码在移动设备上运行,换句话说,是否可以将 sourceT1 转换为 sourceT2

知道如何做吗?

编辑:基于此answer ,不幸的是我认为这是不可能的

最佳答案

你没有说,但如果你使用的是 Chrome,createMediaElementSource 现在应该可以工作。不过,您必须先转到 chrome://flags 并启用统一媒体管道标志。

关于javascript - 将 MediaElementAudioSourceNode 转换为 AudioBufferSourceNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36800909/

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