[AS3]调整视频大小并将每秒帧数捕获率设置为新值
在下面的示例中,当用户单击舞台时,将调整视频大小并将每秒帧数捕获率设置为新值。
舞台的设置使其不会缩放。Camera.getCamera()
方法将返回对 camera 对象的引用,如果没有可用的摄像头或未安装摄像头,则返回 null。如果存在摄像头,则调用 connectCamera()
方法。connectCamera()
方法实例化一个视频对象。要显示摄像头捕获的视频,请将对视频流的引用附加到该视频对象,并将该视频对象添加到显示列表中。还为 MouseEvent.CLICK
事件设置了一个事件侦听器。当用户单击舞台之后,将调用 clickHandler()
方法。该方法检查捕获视频的宽度并设置摄像头捕获模式的宽度、高度和每秒帧数请求速率。为了使这些设置生效,必须删除并重新创建该视频对象。还必须将该视频的宽度和高度设置为 camera 对象的宽度和高度。
- package {
- import flash.display.Sprite;
- import flash.media.Camera;
- import flash.media.Video;
- import flash.events.MouseEvent;
- import flash.display.StageScaleMode;
- public class Camera_setModeExample extends Sprite {
- private var cam:Camera;
- private var vid:Video;
- public function Camera_setModeExample() {
- stage.scaleMode = StageScaleMode.NO_SCALE;
- cam = Camera.getCamera();
- if (!cam) {
- trace("No camera is installed.");
- }else {
- connectCamera();
- }
- }
- private function connectCamera():void {
- vid = new Video();
- vid.width = cam.width;
- vid.height = cam.height;
- vid.attachCamera(cam);
- addChild(vid);
- stage.addEventListener(MouseEvent.CLICK, clickHandler);
- }
- private function clickHandler(e:MouseEvent):void {
- switch (cam.width) {
- case 160:
- cam.setMode(320, 240, 10);
- break;
- case 320:
- cam.setMode(640, 480, 5);
- break;
- default:
- cam.setMode(160, 120, 15);
- break;
- }
- removeChild(vid);
- connectCamera();
- }
- }
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- [AS3]as3.0的sound类常用技巧整理
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例