我正在使用 flex 开发视频聊天应用程序。经过一些带宽检查后,我想根据结果调整相机分辨率。
但是每隔一次我这样做,相机帧就会冻结,我必须杀死 Flash 播放器并重新启动它。相机基本崩溃。
private var camera:Camera;
private function setCameraResolution(width:Number, height:Number):void {
try {
camera = null;
camera = Camera.getCamera();
if (camera == null) {
infoPanel.title = "Error: ";
infoText.text = "No Camera Found";
infoPanel.visible = true;
hideAllControllers();
throw new Error("No Camera Found");
}
camera.setQuality(0, 80);
camera.setKeyFrameInterval(15);
camera.setMode(width, height, 24);
camera.addEventListener(ActivityEvent.ACTIVITY, cameraActivityHandler);
videoCamera.clear();
videoCamera.attachCamera(camera);
} catch (error:Error) {
if (debug) {
ExternalInterface.call('console.log', "Error: " + error.message);
}
}
}
此时相机未连接到任何 NetStream。它只发生在一些相机上,我正在使用 Mac。我在其他网站上检查过,他们也更改了分辨率,我从来没有遇到过问题。这一定是我的代码。
非常感谢您的帮助