繁体   English   中英

通过Ajax提取音频文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM