我正在使用this code制作网络摄像头。
工作正常,但我想添加其他功能,例如:录制后,如果用户不喜欢视频,他们应该可以录制另一个视频并观看该视频。
所以我将这段代码添加到了JavaScript文件中。
where ServerName IN dbo.split_str(ServerName, ',')
function myFunction(videoname) {
var wait;
if (counter == 0) {
var x = document.createElement("VIDEO");
if (x.canPlayType("video/webm")) {
x.setAttribute("src", videoname);
x.setAttribute("id", "replay")
}
x.setAttribute("width", "320");
x.setAttribute("height", "240");
x.setAttribute("controls", "controls");
document.body.appendChild(x);
counter++;
} else {
$("#replay").remove();
var x = document.createElement("video");
if (x.canPlayType("video/webm")) {
x.setAttribute("id", "replay");
x.setAttribute("src", videoname);
}
x.setAttribute("width", "320");
x.setAttribute("height", "240");
x.setAttribute("controls", "controls");
document.body.appendChild(x);
wait = document.getElementById("replay");
wait.load();
}
}
在这种情况下是更新的videoname
,因此当我检查代码时,它可以更改HTML中的视频videoname
。
我想要实现的是,当用户录制视频时,出现一个video元素,并且用户可以看到他们录制的视频。对于第二个视频,当我单击“播放”按钮时,它将显示第一个视频,然后显示第二个视频。我的意思是它可以以某种方式工作,但始终会先播放先前录制的视频,然后再播放新的视频。播放几次后,它将播放新视频。
有什么主意我该如何做?还是以前有人遇到过这个问题?
答案 0 :(得分:0)
解决了!好解决方案来自代码的另一部分。
在同一个js文件videoCapture.js中
const chunks = []
let onDataAvailable = (e) => {
chunks.push(e.data)
}
这件作品必须修改。由于所有数据都存储在数组中,因此我必须在调用另一个记录函数时清除数组。所以我只是在页面顶部声明了块。
let chunks = []
,然后将块= []放入函数内。现在它可以按我的预期工作了。
function myFunction(videoname) {
var wait;
chunks = [];