Я попытался записать аудиофайл и экспортировал его в локальную папку. Я использовал WebAudioRecorder. js API. В первый раз я попытался закодировать этот звук и отправить его в локальную папку, но он не воспроизводился. Затем я попробовал приведенный ниже код, и он совсем не работал. Вот мой сценарий js:
<script>
var recorder, gumStream;
function toggleRecording() {
if (recorder && recorder.state == "recording") {
recorder.stop();
gumStream.getAudioTracks()[0].stop();
} else {
navigator.mediaDevices.getUserMedia({
audio: true
}).then(function(stream) {
gumStream = stream;
recorder = new MediaRecorder(stream);
recorder.ondataavailable = function(e) {
var blobDataInWebaFormat = e.data; // .weba = webaudio; subset of webm
var b = new Blob([blobDataInWebaFormat], { type : 'audio/wav; codecs=0' });
var dataUrl = URL.createObjectURL(b);
//console.log(dataUrl);
var filename =new Date().toISOString();
var fd=new FormData();
fd.append("audio",b,filename);
var link = document.createElement("a");
link.href = dataUrl;
link.download = 'audio' + new Date().getTime() + '.wav';
link.innerHTML = "download file";
document.body.appendChild(link);
var reader = new FileReader();
reader.readAsDataURL(b);
reader.onloadend = function() {
var base64data = reader.result;
//console.log(base64data);
var xhr=new XMLHttpRequest();
xhr.onload=function(e) {
alert(e.target.responseText);
if(this.readyState === 4) {
console.log("Server returned: ",e.target.responseText);
}
};
var fd=new FormData();
fd.append("audio",base64data);
xhr.open("POST","upload_wav.php",true);
xhr.send(fd);
};
return;}
recorder.start();
});
}
}
$(document).ready(function(){
$("#recordButton").click(function(){
toggleRecording()
})
})
</script>
, а вот мой php сценарий:
<?php
if(isset($_POST['execute'])){
define('UPLOAD_DIR', 'C:/AppServ/www/solrengine/vocal_search/');
$audio = str_replace('data:audio/wav;base64,', '', $audio);
$data = base64_decode($audio);
$file = UPLOAD_DIR . uniqid() . '.wav';
$success = file_put_contents($file, $data);
echo $success;
}
?>
, а здесь моя html часть:
<h1 id="brand">micro <img src="images/electronics.png" alt=""></h1>
<div class="container">
<form method="POST">
<div id="micro" style="text-align: center;">
<img id="recordButton" src="images/radio.png" alt="">
<button type="submit" class="btn btn-info" name="execute"> Goo </button>
</div><br>
</form>
</div>
Как я могу это получить?