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 ...
随机推荐
- go sample - hello world
入门级别的hello world package mainimport "fmt"func main() { fmt.Println("blibliblbibl!&quo ...
- 初识VSTO Addin开发
这篇博客将简单介绍一些VSTO Addin开发的知识. 1. VSTO是什么?我们可以用VSTO做什么? VSTO全称Visual Studio Tool for Office,是可以让我们针对现有的 ...
- java 访问 usb
java 要访问 usb 设备,通常要自己写c/c++代码,然后再用 java 访问这些组件,以达到控制usb设备的目的.但现在有一个开源组件 libusb 帮我们做好了访问usb设备的封装(包括wi ...
- JVM内存结构、垃圾回收那点事
翻看电脑的文件夹,无意看到了9月份在公司做的一次分享,浏览了一下"婆婆特",发现自己在ppt上的写的引导性问题自己也不能确切的回答出来,哎,知识这东西,平时不常用的没些日子就生疏了 ...
- 链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的
解决方法: 1.打开该项目的"属性页"对话框. 2.单击"链接器"文件夹. 3.单击"命令行"属性页. 4.将 /SAFESEH:NO 键入 ...
- BRIEF 特征描述子
Binary Robust Independent Elementary Features www.cnblogs.com/ronny 1. BRIEF的基本原理 我们已经知道SIFT特征采用了128 ...
- Linux之find命令用于统计信息
1. 计算当前目录中的文件数: [root@localhost tmp]# find . -type f | wc -l 2. 查找/etc目录中最新的和最旧的文件,以文件时间排序并按年-月-日的格式 ...
- ie上如何兼容placeholder
首先,判断浏览器是否支持placeholder属性: var input = document.createElement('input'); if("placeholder" i ...
- 【bootstrapValidator 不验证】使用bootstrapValidator 验证效果不起作用
虽然在页面ready的时候 就绑定了验证表单 ,但是在点击提交按钮之后 依旧没有验证的效果 . 那就在提交按钮的点击事件中 添加一句话: $(document).ready( function () ...
- CentOS下Redis安装配置小结
Redis是REmote DIctionary Server的缩写. 是一个使用 C 语言写成的,开源的 key-value 非关系型数据库.跟memcached类似,不过数据可以持久化. Redis ...