我走了一条路,起初我想播放一段简短的mp3,然后检测是否发生了这种情况。但是,为了自动播放音频,你必须跳转太多的障碍,尤其是在iOS Safari上,等待用户交互等等,以至于跳转的东西妨碍了测试,让代码认为MP3被阻止了,而实际上它们只是被阻止播放,通过浏览器而不是网络。
所以,我放弃了
MP3。相反,我想做的是通过网络请求一个小的mp3文件,然后分析响应的内容,以确保它实际上是一个mp3文件,而不是,比如说,一个html页面说“对不起,该内容被阻止了”,或者当有人请求阻止的文件时防火墙可能返回的任何其他东西。
我真的想不出最简单的方法是什么,它可以跨浏览器工作。我正在使用jQuery,我想我可能能够在jQueryAjax调用的“成功”部分做一些事情,分析我得到的数据,检查它是否是mp3文件。
我想到的第一件事就是将数据拉到页面上的一个div中,如下所示:
var url = "/assets/test_media_files/silence.mp3?t="+Math.random();
$("#content-test-file-data").load(url, function(){
console.log("loaded data");
});
#content-test-file-data
但是,我怎样才能知道这是不是一个mp3文件呢?有更好的方法吗?我是否需要使用mime类型或类似的类型请求数据?谢谢