gpt4 book ai didi

javascript - 如何在浏览器上使用手机麦克风录音?

转载 作者:行者123 更新时间:2023-12-03 00:50:42 28 4
gpt4 key购买 nike

我正在尝试从浏览器录制声音,但它仅适用于我的 mac 中的 chrome 浏览器,但在任何其他浏览器中都不起作用。我的目标是通过浏览器记录手机的声音。

我一直在尝试以下示例,但它不适用于移动浏览器。它会打开麦克风,但不会停止录制,也不会播放。

我认为问题出在没有被调用的 recorder.stop() 周围。

 <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>

</script>
</head>

<body>
<audio controls autoplay></audio>
<script type="text/javascript" src="recorder.js"> </script>

<input onclick="startRecording()" type="button" value="start recording" />
<input onclick="stopRecording()" type="button" value="stop recording and play" />

<script>
var onFail = function(e) {
console.log('Rejected!', e);
};

var onSuccess = function(s) {
var context = new webkitAudioContext();
var mediaStreamSource = context.createMediaStreamSource(s);
recorder = new Recorder(mediaStreamSource);
recorder.record();

// audio loopback
// mediaStreamSource.connect(context.destination);
}

window.URL = window.URL || window.webkitURL;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;

var recorder;
var audio = document.querySelector('audio');

function startRecording() {
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true}, onSuccess, onFail);
} else {
console.log('navigator.getUserMedia not present');
}
}

function stopRecording() {
//alert("hello");
recorder.stop();
recorder.exportWAV(function(blob) {
//audio.src = window.URL.createObjectURL(s);

var url = URL.createObjectURL(blob);
audio.src = url;
audio.controls = true;
var hf = document.createElement('a');
hf.href = url;
hf.download = new Date().toISOString() + '.wav';
//upload(blob);
audio.src = url;
});

}

function upload(blobOrFile) {
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload.aspx', true);
xhr.onload = function (e) {
var result = e.target.result;
};

xhr.send(blobOrFile);
}
</script>
</body>
</html>

最佳答案

目前只有 Chrome 支持 AudioContext 接口(interface)。
Firefox 也有一个实现,但只在 Nightly 构建中。

我不确定这些浏览器的移动版本是否支持它。

关于javascript - 如何在浏览器上使用手机麦克风录音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21567348/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com