javascript - MediaRecorder 'ondataavailable' 事件未触发
问题描述
这是我用于显示和实时录制音频和视频的完整代码(然后将 blob 块上传到服务器):
$(function () {
var handleSuccess = function(stream) {
var player = document.querySelector("#vid-user");
player.srcObject = stream;
console.log("Starting media recording")
var options = {mimeType: 'video/webm'};
var recordedChunks = [];
var mediaRecorder = new MediaRecorder(stream, options);
mediaRecorder.ondataavailable = function(e) {
console.log("Data available")
if (e.data.size > 0) {
recordedChunks.push(e.data);
var url = URL.createObjectURL(new Blob(recordedChunks));
console.log("URL: " + url)
}
}
mediaRecorder.start();
};
navigator.mediaDevices.getUserMedia({ audio: true, video: true })
.then(handleSuccess)
})
视频播放有效,但问题是mediaRecorder.ondataavailable
没有触发/调用。这里可能是什么问题?
解决方案
该start()
方法采用一个名为 的可选参数timeslice
。除非您指定该参数,否则事件dataavailable
仅在您调用stop()
.MediaRecorder
https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/start
推荐阅读
- azure-devops - 新 VSTS RM UI 中的 task.uploadsummary 和 task.logissue 命令是怎么回事?
- ruby-on-rails - 如何防止出现多个 simple_fields_for 表单?
- php - 从 .php 发送/获取变量到 .php
- java - 在一行中绘制多个矩形
- sql - 从 Excel VBA 连接到 Azure 的连接丢失
- swift - 为什么 WKWebView 无法从 Firebase 打开 .doc?
- multiple-columns - 在 Tableau 中自动隐藏列
- javascript - 仅当圆圈具有关联的注释时才在折线图中附加圆圈
- vue.js - WebRTC 对等连接错误
- android - Android:我的服务未显示在开发人员选项->“正在运行的服务”中