导航:首页 > 新媒体 > web调用拍摄短视频

web调用拍摄短视频

发布时间:2021-02-16 00:28:31

1、android 阿里云短视频上传,混淆代码是什么?

是否集成了第三方SDK,查看是否是其它SDk混淆导致的。
关于代码混淆注意事项
摘要:若使用studio新建项目,会自动生成混淆的相关文件,已经入过很多坑,有几点需注意。1.作为library的mole,不可进行混淆,否则其他mole无法引用,因为会找不到其中被混淆的类,可在主mole中配置混淆.2.注意项目中的bean,尤其是实现Serializable接口的类,在用bundle传输时会出现的问题,必须keep其变量:keepclassmembersclass*implementsjava.io.Serializable{*;}3.一定要keep
若使用studio新建项目,会自动生成混淆的相关文件,已经入过很多坑,有几点需注意。
1.作为library的mole,不可进行混淆,否则其他mole无法引用,因为会找不到其中被混淆的类,可在主mole中配置混淆.
2.注意项目中的bean,尤其是实现 Serializable接口的类,在用bundle传输时会出现的问题,必须keep其变量:keepclassmembers class * implements java.io.Serializable {*;}
3.一定要keep安卓的主要组件类名,如activity,service等等。
Keep public class * extends android.app.activity
4.一定keep第三方类库中的所有东东
Keep class com.baidu.**{*;}
5.注意keep Gson,json,R文件,接口,用到 js 调用时注意webview。

2、html5如何调用手机摄像头,实现拍照,拍视频实现上传功能

html5提供了 navigator.getUserMedia接口使用设备摄像头,chrome28上测试已经可用,手机端浏览器测试发现只有opera浏览器可用。
浏览器未完善之前可以使用PhoneGap完成,它提供了 navigator.camera.getPicture接口,使用js可以方便调用设备摄像头。

3、网站调用摄像头实现视频功能代码谁有?

<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml" height="588" width="901" layout="absolute" creationComplete="connect2FMS()"> <mx:Script> <![CDATA[ import mx.controls.Alert; /** ***此文件属于两个swf文件中的一个,用来定义服务器端 ***用来执行后台服务: ***First:配准图片以确定是否已经发生异常而决定是否录像 ***Second:发布公共视频流到FMS服务器 以供各个客户端访问 */ //定义必须字段 private var conn:NetConnection = new NetConnection(); //此连接连向FMS服务器 //原始位图数据 即正常情况下的位图数据 用来当作以后图片配准的模板 在应用程序启动时写入 private var originalBmpData:BitmapData = null ; private var sobelBmpDataOfOriginal:BitmapData = null ; //经过sobel运算后的位图数据 private var sobelBytes:ByteArray = null; private var recordTimer:Timer = new Timer(500,0); //1分钟调用一次处理方法 然后添加监听器 /** ***连接FMS服务器 */ private function connect2FMS():void { //注意:在AS3.0中默认的ObjectEncoding为AMF3,但是FMS不支持AMF3,所以 //要显示的声明为AMF0 conn.objectEncoding = ObjectEncoding.AMF0 ; //连接FMS所在的服务器IP 协议为rtmp协议 example为FMS的application实例 conn.connect("rtmp://127.0.0.1/example") ; //利用connectSuccessful侦听连接事件 conn.addEventListener(NetStatusEvent.NET_STATUS,connectSuccessful) ; } //定义connectSuccessful方法所需要的一些变量 private var publicStream:NetStream = null ; //公共视频流 用来不间断的给客户端实时监控用 private var recordStream:NetStream = null ; //录像视频流 用来检测是否有异常 特征:可以间断 private var timeStr:String = null ; //定义时间字符串 private function connectSuccessful(e:NetStatusEvent):void { var result:String = e.info.code ; switch(result) { case "NetConnection.Connect.Success": video.attachCamera(Camera.getCamera()) ; //video为DisplayVideo对象 publicStream = new NetStream(conn) ; publicStream.attachAudio(Microphone.getMicrophone()) ; publicStream.attachCamera(Camera.getCamera()) ; //发布公共视频流到FMS 视频流名字为publicStream 并设置为实时live publicStream.publish("publicStream","live") ; recordStream = new NetStream(conn) ; recordStream.attachAudio(Microphone.getMicrophone()) ; recordStream.attachCamera(Camera.getCamera()) ; timeStr = new Date().getTime().toString() ; //播放时间标志位的视频 recordStream.publish(timeStr,"live") ; //用来暂时播放时间标志位视频 //sobelBmpDataOfOriginal = this.computeGray(originalBmpData); //sobelBytes = sobelBmpDataOfOriginal.getPixels(new Rectangle(0,0,sobelBmpDataOfOriginal.width,sobelBmpDataOfOriginal.height)); //sobelBytes = originalBmpData.getPixels(new Rectangle(0,0,sobelBmpDataOfOriginal.width,sobelBmpDataOfOriginal.height)); //监听recordStream停止录像 开始录像等事件的发生 recordStream.addEventListener(NetStatusEvent.NET_STATUS,recordStreamHandler) ; break; case "NetStream.Play.StreamNotFound": Alert.show("相应的视频流没有找到") ; break; default : Alert.show("发生未知错误,请重新启动应用程序") ; break ; } } /** ***停止录像 */ private function stopRecord():void { //关闭录像流 recordStream.close(); } /** ***开始录像 */ private function record():void { //对相应标志时间位的阶段进行录像 recordStream.publish(timeStr,"record"); } /** ***recordStream事件监听处理器 ***如果检测到停止录像事件发生 则继续监测视频流的变化 */ private function recordStreamHandler(e:NetStatusEvent):void { var s:String = e.info.code ; switch(s) { case "NetStream.Record.Stop" : //recordStream = new NetStream(conn) ; //recordStream.attachAudio(Microphone.getMicrophone()) ; //recordStream.attachCamera(Camera.getCamera()) ; //获得下个时间标志位 并按照此标志位进行播放 timeStr = new Date().getTime().toString() ; recordStream.publish(timeStr,"live") ; isRecording = false;//应该在这里设置isRecording //Alert.show("停止录象"); //this.sendData();//还要去处这段注释TOMCAT启动以后 timeCounter = 0; break ; } } /** ***截取摄像头的视频帧图像 转换为位图数据 */ private function takeAPhoto():BitmapData { var bmpData:BitmapData = new BitmapData(video.width,video.height,true,0) ; bmpData.draw(video) ; return bmpData; } /** ***计算指定图像的灰度值 */ private function computeGray(bmpData:BitmapData):ByteArray { var bytes:ByteArray = new ByteArray(); var temp:ByteArray = bmpData.getPixels(new Rectangle(0,0,bmpData.width,bmpData.height)); for(var counter:uint = 0; counter < temp.length; counter++) { var r:uint = this.getR(temp[counter]); var g:uint = this.getG(temp[counter]); var b:uint = this.getB(temp[counter]); var gray:Number = 0.3*r + 0.59*g + 0.11*b; bytes[counter] = Math.round(gray); } return bytes; } /** ***图像配准程序 参数1:原始图像位图数据 参数2:拍照的位图数据 */ private var isRecording:Boolean = false; private var timeCounter:uint = 0; private var isComputing:Boolean = false; private function adjustImage(e:TimerEvent):void { if(isComputing == false) { var balsa:uint = this.getBalsa(); if(isRecording == true) { isComputing = false; //假设录像10s if(timeCounter < 20) { timeCounter++; } else { this.stopRecord(); } } else { //Alert.show("刚近来开始照相"); isComputing = true; var tempBmpData:BitmapData = new BitmapData(video.width,video.height); tempBmpData.draw(video); //这里的阀值要改 var isRecord:Boolean = this.subImage(tempBmpData,balsa); isComputing = false; //Alert.show("isRecord=="+isRecord); if(isRecord == true) { //Alert.show("开始录象"); this.record();//如果符合要求 则进行录像 this.sendData(); isRecording = true; } } } else { //这里没问题 //Alert.show("正在计算"); } } /** ***获得阀值 */ private function getBalsa():uint { return split.value; } /** ***两幅图像相减 参数1:拍摄图像 参数2:给定的阀值 返回:是否需要录像 */ private function subImage(temp:BitmapData,balsa:uint):Boolean { //返回拍摄图像经过sobel运算后的结果 var tempBytes:ByteArray = this.computeGray(temp); i2.source = new Bitmap(temp); for(var counter:uint;counter < tempBytes.length; counter++) { var n:Number = Math.abs(Number(sobelBytes[counter] - tempBytes[counter])); if(n > Number(balsa)) { return true; } } return false; } /** ***以下三个方法分别获得像素点的R G B值 */ private function getB(pixel:uint):uint { return pixel & 0XFF ; } private function getG(pixel:uint):uint { return pixel >> 8 & 0XFF ; } private function getR(pixel:uint):uint { return pixel >> 16 & 0XFF ; } /** ***发送数据到数据库 */ private function sendData():void { var data:Object = new Object(); data.time = timeStr; data.oper = "put"; request.useProxy = false; request.send(data); } /** 启动按牛 */ private function qidong():void { //用来复位原始图像 不相关的物体和人员最好离开 以免发生匹配错误 originalBmpData = new BitmapData(video.width,video.height); originalBmpData.draw(video); sobelBytes = this.computeGray(originalBmpData); i1.source = new Bitmap(originalBmpData); recordTimer.addEventListener(TimerEvent.TIMER,adjustImage); recordTimer.start(); } ]]> </mx:Script> <mx:HTTPService id="request" url="http://localhost:8080/bs/record" /> <mx:Panel x="10" y="10" width="881" height="568" layout="absolute" fontSize="19" color="#00ffff" fontWeight="bold" fontFamily="Courier New" borderColor="#8080c0" themeColor="#000040" cornerRadius="15" alpha="1.0" backgroundColor="#c0c0c0" backgroundAlpha="0.89"> <mx:Canvas x="10" y="10" width="588" height="498"> <mx:VideoDisplay x="0" y="0" width="588" height="458" id="video"/> <mx:Label x="10" y="470" text="调节阀值"/> <mx:HSlider x="103" y="470" width="324" snapInterval="1" id="split" minimum="0" maximum="15" value="8" change="getBalsa()"/> <mx:Button x="435" y="466" label="启动" click="qidong()"/> </mx:Canvas> <mx:Image x="606" y="35" width="245" height="218" id="i1"/> <mx:Image x="606" y="287" width="245" height="221" id="i2"/> <mx:Label x="606" y="10" text="模板图像,不合格继续启动"/> <mx:Label x="606" y="261" text="测试匹配图像是否正常" width="245"/> </mx:Panel> </mx:Application> 这是Server端

4、大神们,请问如果要在web中用C#实现调用摄像头驱动录制视频该怎么做呢?网上的资料全是窗体版的

VB视频压缩和处理通过调用只有那些具有C或C + +编写动态链接回库。
href="http://www.vbgood.com" target="_blank"> www.vbgood.com 上下载一个动态链接库mpegcompress.dll,捕获的瞬答间视频可以被压缩成MPEG2视频。但只是在寻找没有找到,你可以去谷歌搜索就可以了,写的外国人工具。

但是使用它,它是不是像WIN API的ActiveX DLL需要申报,申报的功能接口,因此,在按照它的文档必须使用。你下载到的地方一般应该有英文说明。

5、求救html5 视频调用方法

直接调用swf不是挺好吗?你的意识是,就要视频内容,不要他们的播放器?然后还不想自己存储?这样的话,你可以试试七牛存储。

6、怎么在java web项目实现视频录制功能

ava web实现视频的基本很少,能完整运行的基本没有.视频录制只能使用flash,所以你搜一搜java falsh还是能搜到一些的

7、html调用手机端摄像头拍摄的视频上传,为什么没有临时文件

说说你是怎么拍摄的,用flash?还是canvas?如果是canvas拍照的图,拍的是canvas对象,要将canvas转为图像格式上传

8、高手,用javascript代码调用一个本地视频,让这个视频在网页中全屏播放,如何写代码啊

使用这个,注意路径中不要使用中文

<object id="player" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" style="width: 682px; height: 371px">
<param NAME="AutoStart" VALUE="-1">
<!--是否自动播放-->
<param NAME="Balance" VALUE="0">
<!--调整左右声道平衡,同上面旧播放器代码-->
<param name="enabled" value="-1">
<!--播放器是否可人为控制-->
<param NAME="EnableContextMenu" VALUE="-1">
<!--是否启用上下文菜单-->

<param NAME="url" VALUE="D:\aa.flv">

<!--播放的文件地址-->
<param NAME="PlayCount" VALUE="1
<!--播放次数控制,为整数-->
<param name="rate" value="1">
<!--播放速率控制,1为正常,允许小数,1.0-2.0-->
<param name="currentPosition" value="0">
<!--控件设置:当前位置-->
<param name="currentMarker" value="0">
<!--控件设置:当前标记-->
<param name="defaultFrame" value="">
<!--显示默认框架-->
<param name="invokeURLs" value="0">
<!--脚本命令设置:是否调用URL-->
<param name="baseURL" value="">
<!--脚本命令设置:被调用的URL-->
<param name="stretchToFit" value="0">
<!--是否按比例伸展-->
<param name="volume" value="50">
<!--默认声音大小0%-100%,50则为50%-->
<param name="mute" value="0">
<!--是否静音-->
<param name="uiMode" value="Full">
<!--播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示-->
<param name="windowlessVideo" value="0">
<!--如果是0可以允许全屏,否则只能在窗口中查看-->
<param name="fullScreen" value="0">
<!--开始播放是否自动全屏-->
<param name="enableErrorDialogs" value="-1">
<!--是否启用错误提示报告-->
<param name="SAMIStyle" value>
<!--SAMI样式-->
<param name="SAMILang" value>
<!--SAMI语言-->
<param name="SAMIFilename" value>
<!--字幕ID-->
</object>

9、html5调用本地摄像头播放视频但是浏览器报错如下 请问这个应该怎么解决

video.src = stream;改成video.srcObject = stream;

与web调用拍摄短视频相关的知识