使用JavaScript动态更新视频src

时间:2018-07-24 07:27:25

标签: javascript node.js video webcam

我正在使用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元素,并且用户可以看到他们录制的视频。对于第二个视频,当我单击“播放”按钮时,它将显示第一个视频,然后显示第二个视频。我的意思是它可以以某种方式工作,但始终会先播放先前录制的视频,然后再播放新的视频。播放几次后,它将播放新视频。

有什么主意我该如何做?还是以前有人遇到过这个问题?

1 个答案:

答案 0 :(得分:0)

解决了!好解决方案来自代码的另一部分。

在同一个js文件videoCapture.js中

const chunks = []
let onDataAvailable = (e) => {
  chunks.push(e.data)
}

这件作品必须修改。由于所有数据都存储在数组中,因此我必须在调用另一个记录函数时清除数组。所以我只是在页面顶部声明了块。

let  chunks = []

,然后将块= []放入函数内。现在它可以按我的预期工作了。

function myFunction(videoname) {
  var wait;


    chunks = [];