Android模拟器摄像头 - 摄像头方向
问题描述:
我正在使用我的Mac摄像头模拟模拟器中的Android前置摄像头。不幸的是,相机似乎在横向 - screenshot,即使仿真器是肖像之一。Android模拟器摄像头 - 摄像头方向
请注意,相机在真实设备上的行为正常(即其具有纵向)。
我的模拟器配置: 的Nexus 5X,Android的牛轧糖7.1.1,API等级25,启动定位:肖像,前置摄像头:webcam0,背部摄像头:仿真的
我如何使用网络摄像头与适当的方向?
答
最终,我通过检测解决了这个,如果我在模拟器中运行:
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);
您正在使用哪种类型的仿真器? –
Nexus 5X,Android Nougat 7.1.1 x86,启动方向:纵向,API级别25,摄像头:前端:webcam0,后端:仿真 –
您是否尝试添加到相机应用camera.setDisplayOrientation(90); ? –