如题,现在在做一个UsbCamera,但是在录像时如果移除摄像头,下次再次进入CameraService就会提示获取不到Camera,所以请问,在摄像头被移除的时候,我应该做些什么才能够释放Camera,并且让下一次进入Camera能够正常
解决方案 »
- 请问一下android socket用TCP方式,client端如何监听服务器发送来的数据?
- 解析错误 解析包时出现问题
- 求助,sqlite问题
- Android图片库自动搜索媒体的设计相当弱智
- 我在manifest里面配置了activity,怎么还报这个错啊
- 自定义viewgroup的FadingEdge属性问题
- Android中隐式Intent
- 上线了APP,在WIFI上浏览正常,3G无线浏览乱码?
- cygdrive下编译ffmpeg执行./config通不过(windows下android-ndk-r9d)
- webapp自动打包不同网址,并实现自动签名分发
- 请问时间格式由24式改为12式时,怎么知道时间格式发生改变了呢
- android mms 更新时间格式(在setting中设置完时间格式的显示:mm/dd/yyy),短信或者mms中:信息的显示日期格式的更新机制是怎样的?
1.framework层,会判断当前cameraID是否可以使用,如果不能使用,直接标记为false,下次再打开这个,就直接返回了。 你要修改这里,每次尝试重新打开。
2. v4l2接口层. 有点要注意,热插拔后,videox的节点可能会加变,以前的是video3,可能会变成video4.要重新枚举可以打开的摄像头,对应到framework层的cameraID.嗯,总之android系统本身是不支持usb camera热插拔的,应用层是没办法做到的。如果拿不到对应的系统代码,就不要想了。
下面是我hardware打开设备的代码,问题就出在这里
snprintf(device, sizeof(device), VIDEO_DEVICE_FORMAT, index++);
if (access(device, F_OK) != 0) {
HAL_numOfCameras = 0;
break;
} if (access(device, R_OK|W_OK) == 0) {
HAL_numOfCameras = 1;
break;
}
device同样是video0第一次打开是成功的,第二次打开就失败了,请问是驱动下面还要释放什么资源吗?