我正在使用我的Mac摄像头来模拟器中的Android摄像头。不幸的是,相机似乎在景观方向- 屏幕截图,即使仿真器是在肖像之一。
注意,相机在一个真实的设备上运行正常(即它有一个纵向方向)。
我的仿真器配置:Nexus5X,AndroidNugat7.1.1,API 25级,启动方向:纵向,前置摄像头: webcam0,后置摄像头:模拟
如何使用具有正确定位的网络摄像头?
发布于 2017-07-23 22:37:33
最终,我通过检测是否运行在模拟器中解决了这一问题:
public static boolean isEmulator() {
return Build.FINGERPRINT.startsWith("generic")
|| Build.FINGERPRINT.startsWith("unknown")
|| Build.MODEL.contains("google_sdk")
|| Build.MODEL.contains("Emulator")
|| Build.MODEL.contains("Android SDK built for x86")
|| Build.MANUFACTURER.contains("Genymotion")
|| (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
|| "google_sdk".equals(Build.PRODUCT);
}然后将转换应用于预览纹理:
Matrix matrix = new Matrix();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
Point displaySize = new Point();
display.getRealSize(size);
RectF viewRect = new RectF(0, 0, mCameraPreview.getWidth(), mCameraPreview.getHeight());
float centerX = viewRect.centerX();
float centerY = viewRect.centerY();
float scale = (float) mCameraPreview.getWidth() / (float) displaySize.x;
matrix.postScale(scale, scale, centerX, centerY);
matrix.postRotate(270, centerX, centerY);
mCameraPreview.setTransform(matrix);发布于 2020-06-17 12:33:44
我在仿真器上启用了自动旋转功能,然后将仿真器转换为美化模式,它起作用了.
https://stackoverflow.com/questions/43605591
复制相似问题