Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何发送AJAX POST请求并在响应中播放音频?_Javascript_Jquery_Ajax_Audio_Html5 Audio - Fatal编程技术网

Javascript 如何发送AJAX POST请求并在响应中播放音频?

Javascript 如何发送AJAX POST请求并在响应中播放音频?,javascript,jquery,ajax,audio,html5-audio,Javascript,Jquery,Ajax,Audio,Html5 Audio,我正在构建一个应用程序,用户可以单击一个按钮,然后将数据发送到服务器。然后,服务器根据请求中的数据(很可能是帖子)计算音频,并将WAV文件返回到浏览器 我已经构建了接受post请求并使用wav文件响应的部分,但是我不知道如何在JS中发送请求并将响应播放给用户 此外,音频播放必须在第一个字节进入时开始(几乎),因为音频文件非常大,用户不能等待请求完成 我也愿意接受改变服务器发送文件方式的建议:服务器是在中制作的,这样做行吗 <!DOCTYPE html> <html> &l

我正在构建一个应用程序,用户可以单击一个按钮,然后将数据发送到服务器。然后,服务器根据请求中的数据(很可能是帖子)计算音频,并将WAV文件返回到浏览器

我已经构建了接受post请求并使用wav文件响应的部分,但是我不知道如何在JS中发送请求并将响应播放给用户

此外,音频播放必须在第一个字节进入时开始(几乎),因为音频文件非常大,用户不能等待请求完成


我也愿意接受改变服务器发送文件方式的建议:服务器是在

中制作的,这样做行吗

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

    <audio controls>
        <source id="source" src="" type="audio/mpeg">
        Your browser does not support the audio element.
    </audio>

    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script type="text/javascript">
        $.ajax({
            url: 'get.php',
            data: { attr1: 'value1' },
            success: function( data ) {
                console.log(data);
                $('audio #source').attr('src', data);
                $('audio').get(0).load();
                $('audio').get(0).play();
            }
        });
    </script>
</body>
</html>

我上面打印的音频为30分钟,文件大小约为13mb。我的internet速度不够快,无法在一两秒钟内加载整个文件,但它会立即播放。

您看到此链接了吗?我不认为这是我需要的-它不会播放音频,也不会播放/以某种方式实时返回音频。谢谢!不过有一个问题:为了提高速度,服务器最好直接返回音频,而不是返回音频的URL,并且让浏览器必须发出另一个请求。有什么方法可以做到这一点吗?音频文件内容可以很容易地返回,但是你会遇到大文件问题,因为我认为在做任何事情之前需要完成HTTP请求,其次我不知道如何在DOM中处理它。如果是异步的,那么HTTP请求不应该阻止页面。不过,谢谢你,表现没那么重要。
<?php echo 'http://junaidahmed.io/w/audio.mp3'; ?>