我試圖在客戶端錄製音頻,並將其發送到服務器進行處理。 我已經成功地在客戶端錄製和播放音頻。當我需要將信息發佈到服務器時,我的問題就出現了。錄音上傳到服務器使用jwagener的recorder.js和recorder.swf
我使用jwageners的recorder.js:https://github.com/jwagener/recorder.js#readme
我必須位於站點的主目錄下的crossdomain.xml文件。內容如下
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" secure="false"/>
</cross-domain-policy>
POST請求按他的文檔,如下所示:
function upload(){
Recorder.upload({
method: "POST",
url: "http://localhost/fagaudio/recorder/recorder_server.php",
audioParam: "audiofile",
params: {
"name": "test.wav",
},
success: function(responseText){
alert(responseText);
},
error: function(){
}
});
}
在服務器端(recorder_server.php)我試圖像這樣:
print_r($_POST);
$name = $_POST['name'];
$content = file_get_contents('php://input');
$fh = fopen("audio/".$name, 'w') or die("can't open file");
fwrite($fh, $content);
fclose($fh);
的print_r的語句返回如下:
陣列 ( [名稱] => test.wav [文件名] => audio.wav [上傳] =>提交查詢 )
似乎沒有被任何原始的PHP後的數據和文件是被保存爲空。我在做什麼有明顯的錯誤?我已經嘗試過使用WAMI錄像機,它工作得很好,但問題是我需要能夠通過javascript和wami將信息發佈到服務器,每次錄製後都會自動完成。
非常感謝您提供任何幫助或意見。另外,如果任何人都熟悉其他免費的JavaScript /閃存記錄器,請指出我的方向。我已經通過堆棧溢出搜索了一些建議。