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