将类型SurfaceOrientation转换为int时出错Xamarin Android Visual Studio

问题描述:

我正在使用windows平台上的visual studio制作xamarin中的视频应用程序。 我已经构建应用程序,但视频预览旋转90度逆时针和难以设置方向显示顺时针旋转90度,然后录制视频。我的代码是:将类型SurfaceOrientation转换为int时出错Xamarin Android Visual Studio

namespace XamarinVideoApp 
    { 
     [Activity(Label = "XamarinVideoApp", MainLauncher = true, Icon = "@drawable/icon")] 
     public class MainActivity : Activity 
     { 
      MediaRecorder recorder; 

     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 
      SetContentView(Resource.Layout.Main); 
      ... 

     } 

     protected override void OnDestroy() 
     { 
      base.OnDestroy(); 
      if(recorder != null) 
      { 
       ... 
      } 
     } 

     public static void setCameraDisplayOrientation(Activity activity, int cameraId, Android.Hardware.Camera camera) 
     { 
      Android.Hardware.Camera.CameraInfo info = new Android.Hardware.Camera.CameraInfo(); 
      Android.Hardware.Camera.GetCameraInfo(cameraId, info); 
      int rotation = (int) activity.WindowManager.DefaultDisplay.Rotation; 
      int degrees = 0; 
      switch(rotation) 
      { 
       case SurfaceOrientation.Rotation0: /* Shows Error here: Cannot implicitly convert type 'Android.Views.SurfaceOrientation' to 'int'. An explicit conversion exists (are you missing a cast?) */ 
        degrees = 0; 
      } 
     } 
    } 
} 

我该怎么做才能消除上述switch语句中提到的错误?

+0

我找不到任何建议regadring如何修复这个错误,如一个在Android Studio中:

Xamarin.Android如下这是可以做到。 – Shahzeb

问题是您正在将activity.WindowManager.DefaultDisplay.Rotation投射到int。根本就不是在下面:

Android.Hardware.Camera.CameraInfo info = new 
Android.Hardware.Camera.CameraInfo(); 
Android.Hardware.Camera.GetCameraInfo(0, info); 
var rotation = activity.WindowManager.DefaultDisplay.Rotation; 
int degrees = 0; 
switch (rotation) 
{ 
    case SurfaceOrientation.Rotation0: 
     degrees = 0; 
     break; 
} 

还记得break你的switch的。

此外,请注意Camera.CameraInfowas deprecated in API 21。您应该考虑使用SensorOrientation代替Camera2

var info = Android.Hardware.Camera2.CameraCharacteristics.SensorOrientation;