7

ここや他の場所でこれに対する多くの部分的な回答を見てきましたが、私は非常に初心者のコーダーであり、完全な解決策を望んでいます。Chrome Canary (v. 29.x) でラップトップ マイクからオーディオを録音するようにセットアップできました。

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

しかし、実行中の Linux サーバーにファイルを保存できる必要があります。それは、blob に記録されたデータを実際にサーバーに送信し、それを .wav ファイルとして保存することです。blob を URL に保存する方法と、.wav ファイルの保存を実際に困難にする Linux 上のバイナリを処理する方法について、必要な PHP および/または AJAX の知識がありません。正しい方向への指針を大歓迎します。

4

2 に答える 2

16

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 終了タグの前?>) まで。

お役に立てれば。

于 2013-05-17T19:28:53.680 に答える