如果我们使用以下代码:
var media = new Media('url://...mp3', null, null, mediaStatusCallback);
media.play();
这将首先下载孔mp3文件,然后播放它。但问题是,如果我们有一个大尺寸的音频文件,它将被卡住,直到它完成下载孔文件,这会延迟播放器或无法使用,但我想以异步方式下载部分mp3文件作为数组缓冲区并使用cordova媒体插件,直到下载音频文件的下一部分。这将继续,直到在播放部分音频时下载孔文件。
基本上它就像网络音频API用于缓冲音频但播放它一样 cordova媒体插件。
var url = "sample_audio.mp3";
var request = new XMLHttpRequest();
request.open("GET", url, true);
request.responseType = "arraybuffer";
/* Asynchronous callback */
request.onload = function()
{
/* Create the sound source */
soundSource = context.createBufferSource();
/* Import callback function that provides PCM audio data decoded as an audio buffer */
context.decodeAudioData(request.response, function(buffer)
{
bufferData = buffer;
soundSource.buffer = bufferData;
}, this.onDecodeError);
};
request.send();
有没有人可以帮助我实现这一目标?我已经被困在这一段了一段时间。
提前致谢。