页面的代码是这样的
----------------------------------------
function recorderByRecordRTC(){
drawCanvas();
canvasStream = canvas.captureStream();
audioStream = remoteStream.stream.clone();
var finalStream = new MediaStream();
audioStream.getAudioTracks().forEach(function(track) {
finalStream.addTrack(track);
});
canvasStream.getVideoTracks().forEach(function(track) {
finalStream.addTrack(track);
});
var options = {
type: 'video',
mimeType: 'video/mp4'
};
mediaRecorder = RecordRTC(finalStream, options);
mediaRecorder.startRecording();
}
function endRecord(){
if (!isStart) {
alert("请开始录像再操作");
return;
}
mediaRecorder.stopRecording(function() {
console.info(this.getBlob());
var timestamp = Date.parse(new Date());
//this.save(timestamp+".mp4");
var file = new File([this.getBlob()], timestamp+".mp4");
var a = document.createElement('a');
var url = window.URL.createObjectURL(file);
var filename = timestamp+".mp4";
a.href = url;
a.download = filename;
a.click();
document.body.innerHTML = document.body.innerHTML
+'<video controls src="' + URL.createObjectURL(this.getBlob())
+ '" autoplay loop '
+'style="position:absolute;top:100px;left:100px;width:200px;height:200px;"></video>';
canvasStream.stop();
audioStream.stop();
//window.URL.revokeObjectURL(url);
});
isStart = false;
mediaRecorder=null;
}
------------------------------------------------
无论是调用RecordRTC的save方法还是代码里的下载方法,下载到本地的视频长度都只有2、3秒的长度,但是文件大小正常,在页面上用video标签播放页正常。
----------------------------------------
function recorderByRecordRTC(){
drawCanvas();
canvasStream = canvas.captureStream();
audioStream = remoteStream.stream.clone();
var finalStream = new MediaStream();
audioStream.getAudioTracks().forEach(function(track) {
finalStream.addTrack(track);
});
canvasStream.getVideoTracks().forEach(function(track) {
finalStream.addTrack(track);
});
var options = {
type: 'video',
mimeType: 'video/mp4'
};
mediaRecorder = RecordRTC(finalStream, options);
mediaRecorder.startRecording();
}
function endRecord(){
if (!isStart) {
alert("请开始录像再操作");
return;
}
mediaRecorder.stopRecording(function() {
console.info(this.getBlob());
var timestamp = Date.parse(new Date());
//this.save(timestamp+".mp4");
var file = new File([this.getBlob()], timestamp+".mp4");
var a = document.createElement('a');
var url = window.URL.createObjectURL(file);
var filename = timestamp+".mp4";
a.href = url;
a.download = filename;
a.click();
document.body.innerHTML = document.body.innerHTML
+'<video controls src="' + URL.createObjectURL(this.getBlob())
+ '" autoplay loop '
+'style="position:absolute;top:100px;left:100px;width:200px;height:200px;"></video>';
canvasStream.stop();
audioStream.stop();
//window.URL.revokeObjectURL(url);
});
isStart = false;
mediaRecorder=null;
}
------------------------------------------------
无论是调用RecordRTC的save方法还是代码里的下载方法,下载到本地的视频长度都只有2、3秒的长度,但是文件大小正常,在页面上用video标签播放页正常。
解决方案 »
- jqGrid getChangedCells
- 关于Aptana不能调试的问题
- 根据鼠标或光标所在控件不同,设置div的位置
- disable 滚动条
- 刚刚我问的问题,关于取INPUT的值.
- 可以用javascript控制定义好的样式链接到指定的id上吗?
- 请教JS算法求一解(数据是动态的,有几千种可能的解),麻烦大家帮帮忙!
- html导出数据为word文档
- 在javascript中如何实现去除href属性和增加href属性.用代码实现.
- 还是关于数组...
- jquery动态append的元素用on,delegate还是不能点击,感觉参数没错啊
- 请教一个关于angular如何通过url将获取的json数据解析显示的问题。
因为直接保存远程视频流,在win7是倒过来的,二win10上却是正