FMS Camera对象设置说明
目录:
1.setQuality(Camera.setQuality方法)
2.quality(Camera.quality属性)
3.setMode(Camera.setMode方法)
4.onActivity(Camera.onActivity处理函数)
5.onStatus(Camera.onStatus处理函数)
6.setMotionLevel(Camera.setMotionLevel方法)
一:setQuality(Camera.setQuality方法)
public setQuality([bandwidth:Number], [quality:Number]) : Void
设置每秒的最大带宽或当前输出视频输入信号所需的图片品质。此方法通常只在您使用 Flash Communication Server 传输视频时适用。
使用此方法可以指定输出视频输入信号的哪一方面对于您的应用程序更重要:是带宽使用率还是图片品质。
- 若要指示带宽使用率更为重要,请将一个值传递给 bandwidth 并将 0 传递给 frameQuality。Flash 将在指定的带宽内以可能的最高品质传输视频。如有必要,Flash 将降低图片品质以避免超出指定的带宽。通常,随着运动的增加,品质将降低。
- 若要指示品质更为重要,请将 0 传递给 bandwidth 并将一个数值传递给 frameQuality。Flash 将根据需要使用尽量多的带宽来保持指定的品质。如有必要,Flash 将降低帧速率以保持图片品质。通常,随着运动的增加,带宽的使用率也将增加。
- 若要指定带宽和品质同等重要,请为这两个参数都传递数值。Flash 将传输达到指定品质并且不超过指定带宽的视频。如有必要,Flash 将降低帧速率以在不超出指定的带宽的情况下保持图片品质。
可用性:ActionScript 1.0;Flash Player 6
参数
bandwidth:Number
[可选] - 整数,指定当前输出视频可以使用的最大带宽量,以每秒字节数为单位。若要指定 Flash 视频可以使用所需的任何数量的带宽来保持 frameQuality 的值,则将 0 传递给 bandwidth。默认值为 16384。
quality:Number
[可选] - 整数,指定所需的画面质量的级别,该整数由应用于每一视频帧的压缩量确定。可接受的值范围从 1(最低品质,最大压缩)到 100(最高品质,无压缩)。若要指定画面质量可以根据需要进行变化以避免超出带宽,请将 0 传递给 quality。默认值是 0。
示例
下面的示例举例说明如何使用此方法来控制带宽使用率和图片品质。
- // Ensure that no more than 8192 (8K/second) is used to send video
- active_cam.setQuality(,);
- // Ensure that no more than 8192 (8K/second) is used to send video
- // with a minimum quality of 50
- active_cam.setQuality(,);
- // Ensure a minimum quality of 50, no matter how much bandwidth it takes
- active_cam.setQuality(,);
另请参见
get(Camera.get 方法),quality(Camera.quality 属性),bandwidth(Camera.bandwidth 属性)
二:quality(Camera.quality属性)
public quality : Number [read-only]
整数,指定所需的画面质量级别,该级别由应用于每一视频帧的压缩量确定。可接受的品质值范围为从 1(最低品质,最大压缩)到 100(最高品质,无压缩)。默认值为 0,这意味着图片品质可以根据需要进行变化,以避免超出可用带宽。
可用性:ActionScript 1.0;Flash Player 6
示例
下面的示例使用 NumericStepper 实例指定应用于摄像头输入信号的压缩量。在"库"选项菜单中选择"新建视频",以创建新的视频实例。在舞台上添加实例,并为它指定实例名称 my_video
。添加一个实例名称为 quality_nstep 的 NumericStepper。然后将下面的 ActionScript 添加到时间轴的第 1 帧中:
- var quality_nstep:mx.controls.NumericStepper;
- var my_cam:Camera = Camera.get();
- var my_video:Video;
- my_video.attachVideo(my_cam);
- quality_nstep.minimum = ;
- quality_nstep.maximum = ;
- quality_nstep.stepSize = ;
- quality_nstep.value = my_cam.quality;
- function changeQuality() {
- my_cam.setQuality(my_cam.bandwidth, quality_nstep.value);
- }
- quality_nstep.addEventListener("change", changeQuality);
三:setMode(Camera.setMode方法)
public setMode([width:Number], [height:Number], [fps:Number], [favorArea:Boolean]) : Void
将摄像头的捕获模式设置为最符合指定要求的本机模式。如果摄像头不具有与您传递的所有参数相匹配的本机模式,则 Flash 选择最接近于请求模式的合成的捕获模式。此操作可能涉及裁切图像和删除帧。
默认情况下,Flash 根据需要删除帧,以保持图像大小。若要将删除的帧的数目降至最低(即使这样做意味着减小图像的大小),请将 false
传递给 favorArea
参数。
在选择本机模式时,Flash 尝试尽可能保持请求的纵横比。例如,如果您发出 active_cam.setMode
(400, 400, 30
) 命令,并且摄像头上可用的最大 width 和 height 值分别为 320 和 288,则 Flash 将 width 和 height 都设置为 288;通过将这些属性设置为相同的值,Flash 可以保持所请求的 1:1 的高宽比。
若要确定 Flash 在选择与您请求的值最匹配的模式后分配给这些属性的值,请使用Camera.width
、Camera.height
和 Camera.fps
。
可用性:ActionScript 1.0;Flash Player 6
参数
width:Number
[可选] - 请求的捕获宽度,以像素为单位。默认值为 160。
height:Number
[可选] - 请求的捕获高度,以像素为单位。默认值为 120。
fps:Number
[可选] - 摄像头捕获数据应使用的请求速率,以每秒帧数为单位。默认值为 15。
favorArea:Boolean
[可选] - 布尔值,指定如果摄像头不具有满足指定要求的本机模式时如何控制宽度、高度和帧频。默认值为 true
,这意味着支持保持捕获大小;使用此参数选择与 width 和 height 值最匹配的模式,即使这样做会由于降低帧频而对性能有不利影响。若要最大限度地提高帧频,而不考虑摄像头的高度和宽度,请将false
传递给 favorArea
参数。
示例
下面的示例设置摄像头的捕获模式。可以将帧频键入到 TextInput 实例中,然后按 Enter 或 Return 以应用帧频。在"库"选项菜单中选择"新建视频",以创建新的视频实例。在舞台上添加实例,并为它指定实例名称my_video
。添加实例名称为 fps_ti 的 TextInput 组件实例。然后将下面的 ActionScript 添加到时间轴的第 1 帧中:
- var my_cam:Camera = Camera.get();
- var my_video:Video;
- my_video.attachVideo(my_cam);
- fps_ti.maxChars = ;
- fps_ti.restrict = [-];
- fps_lbl.text = "Current: "+my_cam.fps+" fps";
- function changeFps():Void {
- my_cam.setMode(my_cam.width, my_cam.height, fps_ti.text);
- fps_lbl.text = "Current: "+my_cam.fps+" fps";
- fps_ti.text = my_cam.fps;
- Selection.setSelection(,);
- }
- fps_ti.addEventListener("enter", changeFps);
另请参见
fps(Camera.fps 属性),height(Camera.height 属性),width(Camera.width 属性),currentFps(Camera.currentFps 属性)
四:onActivity(Camera.onActivity处理函数)
onActivity = function(active:Boolean) {}
在摄像头开始或停止检测运动时调用。如果要对此事件处理函数做出响应,则必须创建一个函数来处理其活动值。
若要指定调用 Camera.onActivity(true)
所需的移动量以及必须经过多少时间没有活动才能调用 Camera.onActivity(false)
,请使用 Camera.setMotionLevel()
。
可用性:ActionScript 1.0;Flash Player 6
参数
active:Boolean
- 布尔值,当摄像头开始检测运动时,设置为 true;当运动停止时设置为 false。
示例
下面的示例在摄像头开始或停止检测运动时在"输出"面板中显示 true 或 false。
- // Assumes a Video object named "myVideoObject" is on the Stage
- active_cam = Camera.get();
- myVideoObject.attachVideo(active_cam);
- active_cam.setMotionLevel(, );
- active_cam.onActivity = function(mode)
- {
- trace(mode);
- }
五:onStatus(Camera.onStatus处理函数)
onStatus = function(infoObject:Object) {}
当用户允许或拒绝访问摄像头时调用。如果您要响应此事件处理函数,必须创建一个函数来处理摄像头生成的信息对象。
当一个 SWF 文件尝试访问摄像头时,Flash Player 显示"隐私"对话框,用户可以从中选择是允许还是拒绝访问。
- 如果用户允许访问,则
Camera.muted
属性设置为 false,并且用 code 属性为"Camera.Unmuted"且 level 属性为"Status"的一个信息对象调用此事件处理函数。 - 如果用户拒绝访问,则
Camera.muted
属性设置为 true,并且用 code 属性为"Camera.Muted"且 level 属性为"Status"的一个信息对象调用此事件处理函数。
若要不处理此事件处理函数就确定用户是拒绝还是允许对摄像头的访问,请使用 Camera.muted
属性。
注意:如果用户选择永久允许或拒绝对来自指定域的所有 SWF 文件的访问,则对于来自该域的 SWF 文件不调用此处理函数,除非用户以后更改该隐私设置。有关更多信息,请参阅 Camera.get()
。
可用性:ActionScript 1.0;Flash Player 6
参数
infoObject:Object
- 根据状态消息定义的参数。
示例
每当用户允许或拒绝对摄像头的访问时,下面的 ActionScript 都用于显示消息:
- var my_cam:Camera = Camera.get();
- var my_video:Video;
- my_video.attachVideo(my_cam);
- my_cam.onStatus = function(infoObj:Object) {
- switch (infoObj.code) {
- case 'Camera.Muted' :
- trace("Camera access is denied");
- break;
- case 'Camera.Unmuted' :
- trace("Camera access granted");
- break;
- }
- }
另请参见
get(Camera.get 方法),muted(Camera.muted 属性),showSettings(System.showSettings 方法),onStatus(System.onStatus 处理函数)
六:setMotionLevel(Camera.setMotionLevel方法)
public setMotionLevel([motionLevel:Number], [timeOut:Number]) : Void
指定调用 Camera.onActivity(true)
所需的移动量。或者,设置必须经过多少没有活动的时间(按毫秒数计算),Flash 才会认为动作已停止并调用 Camera.onActivity(false)
。
注意:不论 sensitivity
参数为何值都能显示视频。此参数只确定在何时以及哪些情况下调用Camera.onActivity
,而并不确定实际上是捕获视频还是显示视频。
- 若要完全禁止摄像头检测动作,则将值 100 传递到 sensitivity;永远不调用
Camera.onActivity
。(您可能只将此值用作测试目的,例如暂时禁用在调用Camera.onActivity
时发生的任何动作。) - 若要确定摄像头当前检测到的移动量,请使用
Camera.activityLevel
属性。
运动敏感度值直接对应于活动值。完全不运动时活动值为 0。持续运动时活动值为 100。当您不移动时,活动值小于运动敏感度值;当您移动时,活动值通常会超过运动敏感度值。此方法的用途与
Microphone.setSilenceLevel()
相同;这两种方法都用于指定应该在何时调用onActivity
事件处理函数。但是这些方法对发布流具有非常不同的影响: Microphone.setSilenceLevel()
设计用于优化带宽。在认为音频流被静音时,不发送任何音频数据。所发送的是一个指示静音已启动的消息。Camera.setMotionLevel()
设计用于检测动作,它不影响带宽用量。即使视频流未检测到运动,仍将发送视频。
可用性:ActionScript 1.0;Flash Player 6
参数
motionLevel:Number
[可选] - 数值,指定调用 Camera.onActivity(true)
所需的移动量。可接受值的范围为从 0 到 100。默认值为 50。
timeOut:Number
[可选] - 数字参数,指定必须经过多少没有活动的时间(按毫秒数计算),Flash 才会认为活动已停止并调用 Camera.onActivity(false)
事件处理函数。默认值为 2000(2 秒)。
示例
下面的示例在视频活动开始或结束时将消息发送到"输出"面板。将值为 30 的运动敏感度值更改为更高或更低的数值,看一下不同的值是如何影响运动检测的。
- // Assumes a Video object named "myVideoObject" is on the Stage
- active_cam = Camera.get();
- x = ;
- function motion(mode) {
- trace(x + ": " + mode);
- x++;
- }
- active_cam.onActivity = function(mode) {
- motion(mode);
- }
- active_cam.setMotionLevel(, );
- myVideoObject.attachVideo(active_cam);
另请参见
motionLevel(Camera.motionLevel 属性),motionTimeOut(Camera.motionTimeOut 属性),onActivity(Camera.onActivity 处理函数),activityLevel(Camera.activityLevel 属性)
FMS Camera对象设置说明的更多相关文章
- JAVA-JSP内置对象之session对象设置并获得session生命周期
相关资料:<21天学通Java Web开发> session对象设置并获得session生命周期1.通过session对象的setMaxInactiveInterval()方法可以设置se ...
- 如何 Graphics 对象设置背景色
用 Clear 方法可以轻松地给 Graphics 对象设置背景色. using (Bitmap bmp = new Bitmap(width, height)){ using (Graphic ...
- response对象设置输出缓冲大小
response对象设置输出缓冲大小 制作人:全心全意 通常情况下,服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区,在计算机术语中,缓冲区被定义为暂时放置输入或输出资料的内存. ...
- Oracle数据库备份恢复,巡检须要关注的对象设置以及相关恢复概述
数据库备份恢复.巡检须要关注的对象设置: 1.数据库名称,以及DBID: --dbid在v$database中 SYS@ORCL>select dbid,name from v$dat ...
- HttpContext.Current.Server.MapPath("") 未将对象设置到引用的
在多线程中使用该方法获取目录报错:未将对象设置到引用 #region 上传图片到腾讯 public async Task<Result> UploadImageToWX(string ba ...
- date对象设置set
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 阿里云安全组规则授权对象设置为固定IP段访问
阿里云的ESC建站需要在安全组放通一些端口才能正常访问,所以我们在开放端口的时候就直接设置了全部ip可访问,授权对象填入0.0.0.0/0,意味着允许全部ip访问或者禁止全部ip访问. 但是我们有了一 ...
- 使用 jQuery对象设置页面中 <ul> 元素的标记类型,并使用 DOM 对象设置 <li> 元素的浮动属性和右边距。使用jQuery 对象和 DOM 对象设置页面元素属性
查看本章节 查看作业目录 需求说明: 使用 jQuery对象设置页面中 <ul> 元素的标记类型,并使用 DOM 对象设置 <li> 元素的浮动属性和右边距.使用jQuery ...
- ogre的初始化与启动以及显示对象设置
ogre的使用方法1---自动设置 1.ogre初始化:首先实例化一个Root对象 Root * root = new Root(); Root * root = new Root("plu ...
随机推荐
- java 杂物间 (一) Mybatis
这里放置的是一些杂物,生人勿入. Token的一般parse 过程. @Test public void shouldDemonstrateGenericTokenReplacement() { Ge ...
- Creating a Table View Programmatically
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/Cre ...
- android 入门-布局
android:gravity 针对本view 的位置. android:layout_gravity 本view相对于父布局view的位置. android:layout_alignParentRi ...
- php获取文件夹下面的文件列表和文件夹列表
function getDir($dir) { $dirArray[] = NULL; if (false != ($handle = opendir( $dir ))) { $i=0; while ...
- [Mobile] 手机浏览器输入框-数字输入框
手机浏览器的输入框,一直都是以web的方式进行开发的,没有关注到用户体验,领导提出了输入框要弹出数字输入框,想来应该有这种技术能实现. 搜索之后发现可以使用type="number&qu ...
- linux应用程序地址布局,王明学learn
linux应用程序地址布局 在学习Linux应用程序开发时,经常会遇到如下概念:代码段.数据段.BSS段(Block Started by Symbol,又名:未初始化数据段).堆(heap)和栈(s ...
- win7 快捷键
F F1 显示辅助 F2 重命名选定项目 F3 搜索文件或文件夹 F4 在 Windows 资源管理器中显示地址栏列表 F5 刷新活动窗口 F6 在窗口中或桌面上循环切换屏幕元素 F10 激活活动程序 ...
- Linux学习笔记(5)Linux常用命令之文件搜索命令
(1)find find命令用于文件搜索,所在路径/bin/find,其语法格式为: find [搜索范围] [匹配条件] 1)-name:根据文件名搜索,如搜索/etc下的init文件 [root@ ...
- CSS 基本1
HTML元素可以分为两种: 块级元素 内联元素(行内元素) 两者的区别在于以下三点: 块级元素会独占一行(即无法与其他元素显示在同一行内,除非你显示修改元素的 display 属性),而内联元素则都会 ...
- Emacs 之窗口管理
// */ // ]]> Emacs 之窗口管理 Table of Contents 1. Emacs 窗口相关 1.1. Emacs 里调整 window 大小 1.2. Emacs winn ...