php – 将Chrome中记录的WAV文件保存到服务器

开发技术 作者: 2024-07-09 10:00:01
我在这里和其他地方已经看到了很多部分答案,但我是一个新手编码器,我希望有一个彻底的解决方案.我已经能够在Chrome Canary(第29.x版)的笔记本电脑麦克风中设置录音,并且可以使用recorder.js相对轻松地设置录制.wav文件并在本地保存,la: http://webaudiodemos.appspot.com/AudioRecorder/index.html 但我需要能够将文件保存
我在这里和其他地方已经看到了很多部分答案,但我是一个新手编码器,我希望有一个彻底的解决方案.我已经能够在Chrome Canary(第29.x版)的笔记本电脑麦克风中设置录音,并且可以使用recorder.js相对轻松地设置录制.wav文件并在本地保存,la:

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

但我需要能够将文件保存到我运行的Linux服务器上.这是实际将blob记录的数据发送到服务器并将其保存为一个能够吸引我的.wav文件.我没有必要的PHP和/或AJAX知识,关于如何将blob保存到URL并且如我已经理解的那样处理Linux上的二进制文件,这使得保存.wav文件确实具有挑战性.我非常欢迎任何指示正确的方向.

客户端JavaScript函数上传WAV blob:
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结束标记之前?>).

希望这可以帮助.

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_41260.html