我可以使用ng-cordova媒体插件在离子中播放arrayBuffer音频吗?

时间:2016-04-18 14:07:30

标签: angularjs cordova audio ionic-framework buffering

如果我们使用以下代码:

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();

有没有人可以帮助我实现这一目标?我已经被困在这一段了一段时间。

提前致谢。

0 个答案:

没有答案