我想在浏览器中录制视频,然后为用户播放。我目前正在使用 MediaRecorder API(目前仅在 Firefox 中可用)来执行此操作。它适用于短于几秒钟的视频,但否则视频根本不会显示。
控制台或类似内容中没有错误,我在文档中找不到任何有关文件大小限制的信息。
这是我正在使用的代码(仅限 Firefox):
索引.html:
<!DOCTYPE html>
<html>
<body>
<button id="start">Start</button>
<button id="stop">Stop</button>
<video id="player" src="" width="300" height="300" autoplay></video>
<script src="script.js"></script>
</body>
</html>
脚本.js:
var record = document.getElementById('start');
var stop = document.getElementById('stop');
var video = document.getElementById('player');
var constraints = {video: true};
var onSuccess = function(stream) {
var mediaRecorder = new MediaRecorder(stream);
record.onclick = function() {
mediaRecorder.start();
}
stop.onclick = function() {
mediaRecorder.stop();
}
mediaRecorder.ondataavailable = function(e) {
video.src = window.URL.createObjectURL(e.data);
}
};
var onError = function(err) {
console.log('The following error occured: ' + err);
}
navigator.mozGetUserMedia(constraints, onSuccess, onError);
在 Codepen 上:http ://codepen.io/anon/pen/xGqKgE
这是一个错误/浏览器问题吗?这个 API 有什么我不知道的限制吗?