我正在使用photocam拍照相机,但捕捉选项始终打开。我正在使用具有创建按钮的photocam自动启动属性,该按钮邀请类似的方法:
public void pcFotoStarter()
{
if (pcFoto == Boolean.FALSE)
pcFoto = Boolean.TRUE;
else
pcFoto = Boolean.FALSE;
}
此方法使我的方法的pcFoto字段为true或false,然后我定义了<f:ajax execute="button" render="PhotoCam" />
根据pcFoto布尔值(true或false),photocam是否正常工作。问题是,photocam立即开始,我只能关闭1次photocam.Ant比我无法重新启动photocam。我的网络摄像头使用黄色指示灯闪烁。这就像网络摄像头已经在使用中。
答案 0 :(得分:0)
要关闭相机时尝试执行此Javascript代码
Webcam.stream.getTracks().forEach(x=> x.stop());
在我的情况下,我在打开p:dialog(动态)中的p:photoCam的同时打开相机,并在“关闭”事件上打开了p:ajax回调。像这样
<p:dialog id="modalDialog" widgetVar="photoEditDialog"
modal="true" onHide="PF('photoEditDialog').toggleMaximize();"
resizable="false" closeOnEscape="true"
dynamic="true"
>
<p:ajax event="close" update="photo @this" onsuccess="Webcam.stream.getTracks().forEach(x=> x.stop());"/>
<div style="display: flex;">
<section>
<h1>Camera</h1>
<p:photoCam widgetVar="photoCam" listener="#{cc.attrs.value.onPhotoCapture}" update="preview"
width="400" height="300" photoWidth="1024" photoHeight="768"
/>
<p:commandButton type="button" value="Capture" onclick="PF('photoCam').capture()"/>
</section>
<section>
<h1>Preview</h1>
<p:graphicImage id="preview" value="#{cc.attrs.value.photo}" stream="false"/>
</section>
</div>
</p:dialog>