关于调用flash进行拍照的问题

qq_37813214 2018-11-19 06:18:09
在写webcam方法的时候总是报error: Flash movie not yet registered!的错误,我从网上下载的demo是可以使用的。
在看加载项的时候发现jscam_canvas_only.swf并没有加载,但我不管怎么改jscam_canvas_only.swf的路径都没有效果。
请问下怎么解决
var w = 320, h = 240;
var pos = 0, ctx = null, saveCB, image = [];

var canvas = document.createElement("canvas");
canvas.setAttribute('width', w);
canvas.setAttribute('height', h);

console.log(canvas.toDataURL);
if (canvas.toDataURL) {
ctx = canvas.getContext("2d");

image = ctx.getImageData(0, 0, w, h);

saveCB = function(data) {

var col = data.split(";");
var img = image;

for(var i = 0; i < w; i++) {
var tmp = parseInt(col[i]);
img.data[pos + 0] = (tmp >> 16) & 0xff;
img.data[pos + 1] = (tmp >> 8) & 0xff;
img.data[pos + 2] = tmp & 0xff;
img.data[pos + 3] = 0xff;
pos+= 4;
}

if (pos >= 4 * w * h) {
ctx.putImageData(img, 0, 0);
$.ajax({
type: "post",
url: "/CatD?t="+new Date().getTime(),
data: {type: "pixel", image: canvas.toDataURL("image/png")},
dataType: "html",
success: function(data){
console.log("===="+data);
pos = 0;
$("#img").attr("src", "");
$("#img").attr("src", data);
}
});
}
};
}else{
saveCB = function(data) {
image.push(data);

pos+= 4 * w;

if (pos >= 4 * w * h) {
$.ajax({
type: "post",
url: "/CatD",
data: {type: "pixel", image: image.join('|')},
dataType: "json",
success: function(data){
console.log("+++++"+eval(msg));
pos = 0;
$("#img").attr("src", msg+"");
}
});
}
};
}

$("#table_div").webcam({
width: 280,
height: 240,
mode: "callback",
swffile: "jscam_canvas_only.swf",

onSave: saveCB,

onCapture: function () {
webcam.save();
},

debug: function (type, string) {
console.log(type + ": " + string);
}
});
...全文
755 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sethwhite 2019-09-18
  • 打赏
  • 举报
回复
最新消息(其实是国外老消息)!以后Chrome 、FireFox、Microsoft Edge、Opera 浏览器将不再支持flash, "https://www.blog.google/products/chrome/saying-goodbye-flash-chrome/" "https://developer.mozilla.org/en-US/docs/Plugins/Roadmap " 。那么调用摄像头拍照怎么办? 自行google 关键字"webRTC",记住是google,不是百度! 免费赞助核心代码 //访问用户媒体设备的兼容方法 if (navigator.mediaDevices.getUserMedia || navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia){ //调用用户媒体设备,访问摄像头 getUserMedia({ video:true },success,error); } else { errorCamera(); } function getUserMedia(constrains,success,error){ if(navigator.mediaDevices.getUserMedia){ //最新标准API navigator.mediaDevices.getUserMedia(constrains).then(success).catch(error); } else if (navigator.webkitGetUserMedia){ //webkit内核浏览器 navigator.webkitGetUserMedia(constrains).then(success).catch(error); } else if (navigator.mozGetUserMedia){ //Firefox浏览器 navagator.mozGetUserMedia(constrains).then(success).catch(error); } else if (navigator.getUserMedia){ //旧版API navigator.getUserMedia(constrains).then(success).catch(error); } } //成功的回调函数 function success(stream){ //兼容webkit内核浏览器 var CompatibleURL = window.URL || window.webkitURL; //将视频流设置为video元素的源 try{ video.src = CompatibleURL.createObjectURL(stream); } catch(e){ video.srcObject = stream; } //播放视频 video.play(); } //异常的回调函数 function error(error){ // alert("访问用户摄像头失败,请联系监考人员"); errorCamera(); console.log("访问用户媒体设备失败:",error.name,error.message); var path = window.location.pathname; if (path != '/member/login.html') { // 当前不是登录页面,则退出登录,进入到登录页面 window.location.href = '/exam/logout.html'; } }
PriestM 2019-01-19
  • 打赏
  • 举报
回复
引用 3 楼 我的猫叫一休 的回复:
请问是把swf部署到服务器上,然后http再请求吗?
swf 文件随你项目放就行了,简单来说就是通过 file:/// 开头的链接(本地文件访问)就会报错 我举个例子,如果你只是写了一个 html (或者 jsp 什么的)文件加点 js 代码,直接用浏览器打开本地的这个 html 文件来测试,就会报这个错的 需要把这个 html 文件(当然也包括 swf 文件)丢到 Tomcat 或者其他服务器上的一个 web 项目里,启服务器之后用 http://ip:port/project/x.html 去访问,就正常了
我的猫叫一休 2019-01-19
  • 打赏
  • 举报
回复
引用 2 楼 PriestM 的回复:
不要用本地文件直接访问,部到服务器上,用http ip port的方式访问再看看,这个东西确实挺奇葩的,我昨天也遇到了
请问是把swf部署到服务器上,然后http再请求吗?
wz_307 2018-11-21
  • 打赏
  • 举报
回复
看看这个链接 1是看看"jscam_canvas_only.swf"这个路径下,swf文件是否存在。可以在浏览器中F12看看资源加载时,查看swf的完整路径 2是看看div是否visible
PriestM 2018-11-21
  • 打赏
  • 举报
回复
不要用本地文件直接访问,部到服务器上,用http ip port的方式访问再看看,这个东西确实挺奇葩的,我昨天也遇到了
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统中变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研中的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文中提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧