【发布时间】:2017-07-29 09:25:31
【问题描述】:
我一直在开发一个允许用户单击并操作 mp3 文件的在线应用程序,我正在尝试将本地文件从我的计算机加载到 wavesurfer 对象中,但我在 chrome 中不断收到此错误:
"访问 XMLHttpRequest 在 'file:///local/file/path/to/audio/files/some.mp3' 来自原点'null' 已被 CORS 策略阻止:跨源请求仅 支持协议方案:http、data、chrome、chrome-extension、 https。”
我尝试将 HTML 和 mp3 文件放在多台计算机上的多个不同文件夹中,但似乎没有任何效果。这是我的代码:
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/wavesurfer.js/1.2.3/wavesurfer.min.js"></script>
<div id="waveform"></div>
<script>
var wavesurfer = WaveSurfer.create({
container: '#waveform',
waveColor: 'darkorange',
progressColor: 'blue',
height: 64,
backend: 'MediaElement'
});
//setRequestHeader('Origin', document.domain);
//wavesurfer.load("http://ia902606.us.archive.org/35/items/shortpoetry_047_librivox/song_cjrg_teasdale_64kb.mp3");
var song = "clippedJaco.mp3";
wavesurfer.load(song);
wavesurfer.on('ready', function () {wavesurfer.play();});
</script>
</body>
添加“MediaElement”后端时,会加载 mp3,但不会生成波形。非常感谢任何帮助,谢谢!
【问题讨论】:
-
重复问题stackoverflow.com/a/21608670/147175 ...只需cd到您的html文件所在的目录并发出python命令... python -m SimpleHTTPServer ....然后在浏览器中查看链接localhost:8000
-
一旦我意识到直接从文件加载根本不起作用,我最终通过创建一个 blob 文件 url 让它工作。非常感谢您的建议!
-
@MitchellDalzin 你能告诉我你的答案吗
标签: javascript html audio wavesurfer.js