android native.js 调用camera获取视频流,添加回调以后大概4/5秒就会自动退出,谁知道是怎么回事?内存不足吗?
document.addEventListener( "plusready",()=>{
//导入类
SurfaceView = plus.android.importClass("android.view.SurfaceView");
//导入Camera类
Camera = plus.android.importClass("android.hardware.Camera");
console.log("Camera",Camera);
//导入类
LinearLayout = plus.android.importClass("android.widget.LinearLayout");
//获取Activity
main = plus.android.runtimeMainActivity();
console.log('main',main)
view = new LinearLayout(main);
console.log("view",view);
//设置布局参数
var lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
//实例化surfaceview
surfaceview = plus.android.newObject("android.view.SurfaceView",main);
console.log("surfaceview",surfaceview);
//获取holder
//holder = surfaceview.getHolder();
holder = plus.android.invoke(surfaceview,"getHolder");
console.log("holder",holder);
linearParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); //取控件surfaceview当前的布局参数
console.log("linearParams",linearParams);
view.addView(surfaceview,linearParams);
main.setContentView(view);
//打开摄像头
camera = plus.android.invoke("android.hardware.Camera","open",0);
console.log("camera",camera);
//设置摄像头参数
params = plus.android.invoke(camera,"getParameters");
console.log('params',params);
//params.setPreviewSize(3968,2796);
//params.setPreviewFrameRate(5);
//params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);// 连续自动对焦
plus.android.invoke(camera,"setParameters",params);
//90度
camera.setDisplayOrientation(90);
//显示相机预览
plus.android.invoke(camera,"setPreviewDisplay",holder);
// autoFocusCB = plus.android.implements( "android.hardware.Camera.AutoFocusCallback", {
// "onAutoFocus":function( success , camera ){
// console.log("自动对焦",success,camera);
// }
// });
// plus.android.invoke(camera,"autoFocus",autoFocusCB);
//注册视频流回掉
previewCallback = plus.android.implements("android.hardware.Camera$PreviewCallback", {
onPreviewFrame:function( data , camera ){
console.log("视频流");
}
})
camera.setPreviewCallback(previewCallback);
//开始拍摄
plus.android.invoke(camera,"startPreview");
}, false );
2 个回复
1***@qq.com (作者)
大神们,在哪里?
1***@qq.com (作者)
最后还是拿原生重写了、、、、、、、、、