共计 2061 个字符,预计需要花费 6 分钟才能阅读完成。
用户媒体对象
功能介绍
用户媒体对象允许从用户那里获取摄像头或麦克风输入。这需要用户的系统上安装有适当的硬件,例如 PC 上的网络摄像头、手机上的电话摄像头或麦克风。可以拍摄摄像头快照并将其转换为精灵或平铺背景对象,可以使用音频对象分析麦克风输入。
出于安全原因,大多数浏览器会在允许用户媒体输入之前提示用户进行权限授权,并会显示清晰的通知,表明媒体设备当前正在使用中,例如系统托盘或标签图标中的录音图标。
用户媒体对象具有一些通用功能,包括能够为视频源应用效果。
布局中的表示
用户媒体对象在布局视图中显示为一个矩形,由中间的红色交叉和其图标表示。这表示视频源将在布局中的何处显示。如果你不需要视频输入,可以将用户媒体对象放在布局之外。
用户媒体条件
- 媒体请求被批准:当用户在“请求摄像头”或“请求麦克风”操作后确认安全提示时触发,表示他们同意允许应用程序使用媒体输入。
- 媒体请求被拒绝:当用户在“请求摄像头”或“请求麦克风”操作后取消安全提示时触发,表示他们不同意应用程序使用媒体输入的请求。
- 检索到媒体源:在“获取媒体源”操作完成后触发,并且可以使用音频源和摄像头源表达式列出媒体源列表。
- 快照准备就绪:在“快照”操作后触发,当快照准备好使用快照 URL 表达式时。
用户媒体动作
- 获取媒体源:请求一个可以使用“请求摄像头”或“请求麦克风”操作的媒体源列表。例如,移动设备可能既有前置摄像头又有后置摄像头,或者有多个麦克风。使用媒体源列表可以选择特定的摄像头或麦克风输入。这不立即完成;只有在“检索到媒体源”触发器触发后,媒体源列表才可用。浏览器也可能不支持列出媒体源,在这种情况下触发器将永远不会触发。
- 请求摄像头:向用户显示一个安全提示,请求他们给应用程序使用摄像头输入的权限。根据他们的决定,将触发“媒体请求被批准”或“媒体请求被拒绝”。如果获得批准,布局中的用户媒体对象将开始显示来自用户摄像头设备的视频源。如果支持媒体源列表并且已请求媒体源列表,则可以使用“源”参数选择要使用的特定摄像头源。否则,如果设备有两个摄像头(这在移动设备上很常见),则可以使用“首选方向”设置选择面向用户(前置 / 自拍)或面向环境(后置)的摄像头。如果首选宽度 / 高度不为零,则将选择输入设备支持的最接近的分辨率。还可以选择包含麦克风输入(请参阅“请求麦克风”),这在你想使用游戏记录器录制用户的摄像头并包含音频时很有用。
- 请求麦克风:向用户显示一个安全提示,请求他们给应用程序使用麦克风输入的权限。根据他们的决定,将触发“媒体请求被批准”或“媒体请求被拒绝”。项目中还必须有音频对象才能使用此功能。为麦克风输入提供一个标签,并将麦克风的音频输入路由到与使用该标签播放声音相同的方式。这意味着你可以通过将效果添加到分配给麦克风的相同标签来为麦克风输入分配音频对象的效果。一个有用的组合是向麦克风输入添加分析器效果,然后添加静音效果。这将防止用户听到自己的声音,但允许使用分析器进行峰值、RMS 和频谱监控。如果支持媒体源列表并且已请求媒体源列表,则可以使用“源”参数选择要使用的特定麦克风输入;否则将使用默认麦克风输入。
- 快照:如果用户已批准摄像头请求并且用户媒体对象正在显示视频源,则拍摄当前帧的快照。静止图像在“快照准备就绪”触发后在快照 URL 表达式中可用。使用“从 URL 加载图像”操作并将快照 URL 传递给它可以将图像加载到精灵或平铺背景对象中,或者使用浏览器对象的“调用下载”操作下载图像。此操作可以选择采用参数,允许你指定压缩格式,如果你打算上传或保存图像并且较小的文件大小将是有利的,这将很有用。
- 停止:结束任何活动的视屏源或麦克风输入。必须再次请求媒体输入才能使用它。
用户媒体表达式
- AudioSourceCount:在“检索到媒体源”触发后,可用的音频源数量。
- AudioSourceLabelAt(index):在“检索到媒体源”触发后,给定索引处的音频源的标签。标签通常是输入或录音设备的名称,但由于安全原因可能会为空(例如,如果用户尚未批准媒体请求)。
- CameraSourceCount:在“检索到媒体源”触发后,可用的摄像头源数量。
- CameraSourceFacingAt(index):在“检索到媒体源”触发后,指示摄像头源的方向的字符串。这可以是“用户”(摄像头面向用户,如手机上的前置摄像头)、“环境”(摄像头背对用户,如手机上的后置摄像头)、“左”、“右”,或者如果未知或出于安全原因保留为空。
- CameraSourceLabelAt(index):在“检索到媒体源”触发后,给定索引处的摄像头源的标签。标签通常是输入设备的名称,但由于安全原因可能会为空(例如,如果用户尚未批准媒体请求)。
- SnapshotURL:在一次“快照”操作并在“快照准备就绪”触发后,代表快照图像的数据 URI,否则为空字符串。
- VideoWidth:如果视频源获得批准并且处于活动状态,则返回设备提供的视频源的大小(可能与布局中的对象大小不同)。如果没有活动的视频源,则返回 0。
正文完