2017-01-02 6 views
0

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

私はアンドロイドのスタジオで1のようにそのエラーを修正する方法regadring任意の提案を見つけることができません。 – Shahzeb

答えて

0

activity.WindowManager.DefaultDisplay.Rotationintにキャストしようとしています。

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; 
} 

はまた、あなたのswitchのうち、breakに覚えている:単に代わりに以下を実行します。

さらに、Camera.CameraInfowas deprecated in API 21に注意してください。代わりにCamera2SensorOrientationを使用することを検討する必要があります。次のように

これはXamarin.Androidで行うことができます

var info = Android.Hardware.Camera2.CameraCharacteristics.SensorOrientation; 
関連する問題