Shoutcast + Web Audio API CORS 问题

Posted

技术标签:

【中文标题】Shoutcast + Web Audio API CORS 问题【英文标题】:Shoutcast + Web Audio API CORS issue 【发布时间】:2015-08-07 21:25:25 【问题描述】:

我有一个问题,我已经研究了一段时间,但没有真正的进展。我目前正在尝试将我的 Shoutcast 流加载到我的 Web 音频 API 上下文中。我认为这会违反 CORS,我是对的。我尝试了通过 XHR 请求,然后再次将音频元素加载到脚本中。它与音频元素一起工作,但在尝试将其加载到脚本中时死了。看来我唯一的选择是尝试以某种方式将 CORS 标头添加到我的 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();

【问题讨论】:

可能重复:***.com/questions/30603872/… 【参考方案1】:

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

【讨论】:

以上是关于Shoutcast + Web Audio API CORS 问题的主要内容,如果未能解决你的问题,请参考以下文章

关于Web Audio API的入门

是否有抽象 Web Audio API 和 Mozilla Audio Data API 以读取原始音频(MP3,ogg)的库

Web RTC + audio API 实现录音,并压缩

暂停 Web Audio API 声音播放

使用 Web Audio API 为声音的开头添加静音 [关闭]

Web Audio Api 与 Web Speech Api 集成 - 将扬声器/声卡输出流式传输到语音识别 api