我有一个问题,我已经工作了一段时间,没有任何进展。我目前正在尝试将Shoutcast流加载到Web Audio API上下文中。我认为这会违反CORS,所以我是对的。我尝试通过XHR Request进行尝试,然后再次尝试通过将音频元素加载到脚本中来进行尝试。它可以与音频元素一起使用,但是在尝试将其加载到脚本中时死亡。看来我唯一的选择是尝试以某种方式将CORS header 添加到我的Shoutcast服务的流中。

我不知道该怎么做,也没有运气在网上找到资源。如果有人可以给我一些建议,将不胜感激!

var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var soundSource, concertHallBuffer;

ajaxRequest = new XMLHttpRequest();

ajaxRequest.open('GET', 'http://127.0.0.1:8000/;stream.mp3', true);

ajaxRequest.responseType = 'arraybuffer';


ajaxRequest.onload = function() {
  var audioData = ajaxRequest.response;
  console.log(audioData);

   audioCtx.decodeAudioData(audioData, function(buffer) {
    concertHallBuffer = buffer;
    soundSource = audioCtx.createBufferSource();
    soundSource.buffer = concertHallBuffer;

    soundSource.connect(audioCtx.destination);
    soundSource.loop = true;
    soundSource.start();
  }, function(e){"Error with decoding audio data" + e.err});
}

ajaxRequest.send();

最佳答案

只是回答我自己的问题。通过在apache中设置指向我的广播流和端口的反向代理,我可以在广播流中正常工作。

10-07 23:02