webrtc实现浏览器录音
时间: 2023-09-20 22:11:42 浏览: 173
WebRTC (Web Real-Time Communications) 是一个支持浏览器之间实时通信的技术,包括语音、视频和数据传输等。在浏览器中实现录音功能可以利用 WebRTC 中的 MediaStream API。
以下是基本的代码示例:
```html
<audio id="recordedAudio"></audio>
<button id="startRecording">开始录音</button>
<button id="stopRecording">停止录音</button>
<script>
var stream;
var recorder;
var audio = document.querySelector('audio#recordedAudio');
var startRecordingButton = document.querySelector('button#startRecording');
var stopRecordingButton = document.querySelector('button#stopRecording');
startRecordingButton.onclick = function() {
navigator.mediaDevices.getUserMedia({ audio: true })
.then(function(userMediaStream) {
stream = userMediaStream;
recorder = new MediaRecorder(stream);
recorder.start();
console.log('开始录音');
})
.catch(function(err) {
console.log('无法获取用户媒体流', err);
});
}
stopRecordingButton.onclick = function() {
recorder.stop();
stream.getTracks().forEach(function(track) {
track.stop();
});
console.log('停止录音');
}
recorder.ondataavailable = function(event) {
audio.src = URL.createObjectURL(event.data);
}
</script>
```
这段代码中,我们通过 `navigator.mediaDevices.getUserMedia` 获取用户媒体流,并且创建一个 `MediaRecorder` 对象来进行录音。当开始录音时,我们将 `MediaRecorder` 对象的状态设置为 `recorder.start()`。当停止录音时,我们停止 `MediaRecorder` 对象,并停止所有的媒体轨道。最后,我们将录音的数据转换成 URL 用于播放。
需要注意的是,该示例代码只是一个基本的实现。在实际开发中,还需要处理录音过程中可能出现的各种错误和异常情况。
阅读全文