webrtc 录音示例
时间: 2023-06-25 17:04:11 浏览: 56
以下是使用 WebRTC 进行录音的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>WebRTC Recorder</title>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
<script>
var stream;
var mediaRecorder;
var recordedChunks = [];
function startRecording() {
var constraints = { audio: true, video:false }
navigator.mediaDevices.getUserMedia(constraints).then(function(mediaStream) {
stream = mediaStream;
var mediaRecorderOptions = { mimeType : 'audio/webm' };
mediaRecorder = new MediaRecorder(mediaStream, mediaRecorderOptions);
mediaRecorder.ondataavailable = handleDataAvailable;
mediaRecorder.start();
}).catch(function(error) {
console.log('Error accessing microphone:', error);
});
}
function stopRecording() {
mediaRecorder.stop();
stream.getTracks().forEach(function(track) {
track.stop();
});
var blob = new Blob(recordedChunks, { type : 'audio/webm' });
var url = URL.createObjectURL(blob);
var audio = document.getElementById('audio');
audio.src = url;
}
function handleDataAvailable(event) {
if (event.data.size > 0) {
recordedChunks.push(event.data);
}
}
</script>
</head>
<body>
<button onclick="startRecording()">Start Recording</button>
<button onclick="stopRecording()">Stop Recording</button>
<br><br>
<audio id="audio" controls></audio>
</body>
</html>
```
在上面的示例中,我们使用 getUserMedia 方法获取用户的麦克风流并创建一个 MediaRecorder 实例来录制音频。然后,我们可以使用 start 和 stop 方法开始和停止录制。录制结束后,我们可以使用 recordedChunks 数组中的数据来创建一个 Blob 对象,并将其用作音频源的 URL。最后,我们可以使用 HTML5 的音频控件来播放录制的音频。