[英]Stream an audio file into the HTML audio element via AJAX/PHP request with Blob?
[英]Fetching audio file via Ajax
我需要使用Ajax提取音频文件并以字节数组的形式接收它。 我的后端在PHP上。
目前我正在使用
<?php
echo file_get_contents("./mainFile.mp3");
?>
这让我以字节数组的形式返回音频文件。 但是,如何在Javascript中将其作为字节数组接收。 我在SO上提到了此链接
但这似乎不是正确的方法。 任何人都可以提出建议吗?
保存一个名为:raw_audio.php的文件
<?php
echo file_get_contents("./mainFile.mp3");
?>
现在从您的ajax调用中加载该php文件。
$.ajax({
url:'raw_audio.php',
success: function(data)
{
var raw=data;
}
});
您需要将overrideMimeType()
为"text/plain; charset=x-user-defined"
如下所示:
$.ajax( {
url: "php.php",
beforeSend: function( xhr ){
xhr.overrideMimeType( "text/plain; charset=x-user-defined" );
},
success: function( text ) {
var i, l = text.length, bytes = [];
for( i = 0; i < l; ++i ) {
bytes.push( text.charCodeAt(i) & 0xFF );
}
console.log( bytes.length );
}
});
请注意,这是非常徒劳的,JavaScript中的位操作仅在string + charCodeAt上才非常快。 正如我在我的应用程序中震惊地发现的那样,它甚至比类型化数组上的速度还要快。
文本/纯文本并不重要,但字符集很重要。
尝试使用“ arraybuffer”响应类型:
request = new XMLHttpRequest();
request.responseType = "arraybuffer";
// ...
您要做的是以“二进制”方式通过ajax读取文件。 我只是用谷歌搜索了二进制ajax,这是出现的第一个结果...不确定是否有用... http://nagoon97.wordpress.com/2008/04/06/reading-binary-files-using-ajax /
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.