我正在构建一个混合应用程序,它需要在摄像机视图顶部有一个自定义按钮(维护现有的摄像机控件)。我之前在iOS中做过这个并且相当简单。但是大多数Android插件都使用了' intent'方法:
Intent intent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
this.cordova.startActivityForResult((CordovaPlugin) this, intent, CAPTURE_VIDEO);
https://github.com/apache/cordova-plugin-media-capture/blob/master/src/android/Capture.java
这会在我的插件完全独立的窗口中打开本机相机,这会阻止我添加叠加按钮。
有一些插件使用更多自定义代码来调用摄像机:
recorder = new MediaRecorder();
recorder.setCamera(camera);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
setProfile(recorder, cameraParameters);
recorder.setOutputFile(filePath);
recorder.setOrientationHint(90);
preview.attach(recorder);
recorder.prepare();
recorder.start();
https://github.com/jamesla/backgroundvideo/blob/master/src/android/VideoOverlay.java
然而,这些插件非常多,并且删除了我计划依赖的很多Camera控件:启动/停止/预览和接受按钮。
中间是否有解决方案,我不需要从头开始重新编写相机按钮,我可以保留现有按钮,但添加叠加层?