Javascript:要下载麦克风音频 link?
Javascript: Microphone audio to download link?
我正在尝试从麦克风录制音频,然后为其添加下载 link。
这是我当前的代码:
<!DOCTYPE html>
<html>
<head>
<title>Weird Problem</title>
<script>
function microphone() {
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({ audio: true, video: false }).then(function(stream) {
var recorder = new MediaRecorder(stream);
var chunks = [];
recorder.ondataavailable = function(e) {
chunks.push(e.data);
}
recorder.onstop = function() {
stream.getTracks()[0].stop();
var blob = new Blob(chunks, { type: "audio/ogg; codecs=opus" });
var url = window.URL.createObjectURL(blob);
document.getElementById("player").src = url;
document.getElementById("upload").href = url;
document.getElementById("upload").download = "test.ogg";
}
recorder.start();
setTimeout(function() {
recorder.stop();
}, 5000);
}).catch(function(error) {
console.log(error);
});
}
}
</script>
</head>
<body>
<input type="button" value="Record Microphone" onclick="microphone();">
<br>
<audio controls id="player"></audio>
<br>
<a id="upload">Download Microphone Recording</a>
</body>
</html>
我在 Chrome,对我来说它可以正确播放麦克风音频,但是当我尝试下载它时,文件无法播放甚至无法打开。
我收到各种错误,提示文件包含未知格式的数据,因此我认为这与音频有关 headers。
非常感谢任何帮助!
原来这个问题比我想象的要复杂一些
我现在正在改编来自 Recorder.js 的代码。
我正在尝试从麦克风录制音频,然后为其添加下载 link。
这是我当前的代码:
<!DOCTYPE html>
<html>
<head>
<title>Weird Problem</title>
<script>
function microphone() {
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({ audio: true, video: false }).then(function(stream) {
var recorder = new MediaRecorder(stream);
var chunks = [];
recorder.ondataavailable = function(e) {
chunks.push(e.data);
}
recorder.onstop = function() {
stream.getTracks()[0].stop();
var blob = new Blob(chunks, { type: "audio/ogg; codecs=opus" });
var url = window.URL.createObjectURL(blob);
document.getElementById("player").src = url;
document.getElementById("upload").href = url;
document.getElementById("upload").download = "test.ogg";
}
recorder.start();
setTimeout(function() {
recorder.stop();
}, 5000);
}).catch(function(error) {
console.log(error);
});
}
}
</script>
</head>
<body>
<input type="button" value="Record Microphone" onclick="microphone();">
<br>
<audio controls id="player"></audio>
<br>
<a id="upload">Download Microphone Recording</a>
</body>
</html>
我在 Chrome,对我来说它可以正确播放麦克风音频,但是当我尝试下载它时,文件无法播放甚至无法打开。
我收到各种错误,提示文件包含未知格式的数据,因此我认为这与音频有关 headers。
非常感谢任何帮助!
原来这个问题比我想象的要复杂一些
我现在正在改编来自 Recorder.js 的代码。