gpt4 book ai didi

android - Flex 移动相机 + 原生扩展

转载 作者:行者123 更新时间:2023-11-29 02:09:50 24 4
gpt4 key购买 nike

我已经在 Adob​​e 预发布论坛上问过这个问题,但他们保持沉默,所以我需要你的帮助!

我需要制作一个应用程序,该应用程序应该能够在将实时视频流传输到服务器期间打开/关闭 Android 设备上的闪光灯。

所以我做了扩展。 Java函数很简单:

 try{ 
if (isOn){
camera = Camera.open();
Parameters params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
} else {
camera.release();
}
} catch( Exception e ){
}

我使用的是带前后摄像头的 HTC desire S。 当我从 air 应用程序(使用 as3 camera = Camera.getCamera())进行流式传输并尝试使用此扩展时,它根本没有响应

所以我找到了解决方法:在 flash 中我将代码更改为:

 camera = null;
nativeExtension.turnFlashOn(true);
camera = Camera.getCamera("1");

此代码仅在我使用后置摄像头时有效,但我需要传递参数“1”,它实际上是前置摄像头,但在这种情况下使用后置摄像头。 无论如何 - 它工作正常。

但是,当我尝试在 HTC 上仅使用后置摄像头使用此应用程序时,我卡住了……我无法使用 Camera.getCamera("1"),因为我只有“0”摄像头,即后置摄像头。所以当我使用这段代码时:

 camera = null;
nativeExtension.turnFlashOn(true);
camera = Camera.getCamera("0");

我的图像在两侧(Android 应用程序和另一侧)卡住,当闪光灯关闭时它恢复正常

最佳答案

我认为这是因为您仍然在 native 扩展中打开了相机。您仅在运行 nativeExtension.turnFlashOn(false) 时释放它

相机资源一次只能由一个进程持有。这就是它结冰的原因。我怀疑如果你查看你的系统日志(logcat)你会看到像“无法连接到相机”这样的错误当你的闪光灯关闭时,你已经运行了 camera.release() 所以它没有被保留并且 AS 可以获取它.

我不确定在您要求前置摄像头但使用后置摄像头的 AS 中发生了什么。你不是很清楚。无论哪种方式,都不要这样做,因为无法完成您想要的结果,因为它需要两个进程同时持有相机资源。

为什么不从您的 native 扩展进行流式传输?这样你就可以同时使用相机和闪光灯,而且性能可能会好很多,因为它是 native 运行的。 Flex 对摄像头和录制视频的支持真的很差。我打算使用它并最终决定将我所有的相机进程移动到一个 NE。

希望对你有帮助

关于android - Flex 移动相机 + 原生扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com