gpt4 book ai didi

php - 将 Chrome 中录制的 WAV 文件保存到服务器

转载 作者:可可西里 更新时间:2023-11-01 12:45:01 26 4
gpt4 key购买 nike

我在这里和其他地方看到了很多对此的部分答案,但我是一个非常新手的编码员,我希望有一个彻底的解决方案。我已经能够在 Chrome Canary(v. 29.x)中设置从笔记本电脑麦克风录制音频,并且可以使用 recorder.js 相对轻松地设置录制 .wav 文件并将其保存在本地,a la:

http://webaudiodemos.appspot.com/AudioRecorder/index.html

但我需要能够将文件保存到我正在运行的 Linux 服务器上。这是将 blob 记录的数据实际发送到服务器并将其保存为 .wav 文件的过程,这让我很着迷。我没有必要的 PHP 和/或 AJAX 知识来了解如何将 blob 保存到 URL 以及如何处理,正如我所了解的那样,Linux 上的二进制文件确实使保存该 .wav 文件具有挑战性。我非常欢迎任何指向正确方向的指示。

最佳答案

用于上传 WAV blob 的客户端 JavaScript 函数:

function upload(blob) {
var xhr=new XMLHttpRequest();
xhr.onload=function(e) {
if(this.readyState === 4) {
console.log("Server returned: ",e.target.responseText);
}
};
var fd=new FormData();
fd.append("that_random_filename.wav",blob);
xhr.open("POST","<url>",true);
xhr.send(fd);
}

PHP 文件 upload_wav.php:

<?php
// get the temporary name that PHP gave to the uploaded file
$tmp_filename=$_FILES["that_random_filename.wav"]["tmp_name"];
// rename the temporary file (because PHP deletes the file as soon as it's done with it)
rename($tmp_filename,"/tmp/uploaded_audio.wav");
?>

之后您可以播放文件 /tmp/uploaded_audio.wav

但请记住! /tmp/uploaded_audio.wav 由用户 www-data 创建,并且(PHP 默认)用户不可读。要自动添加适当的权限,请附加行

chmod("/tmp/uploaded_audio.wav",0755);

到 PHP 的结尾(在 PHP 结束标记 ?> 之前)。

希望这对您有所帮助。

关于php - 将 Chrome 中录制的 WAV 文件保存到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16616010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com