2016-06-03 9 views
0

Ich arbeite an einer App auf dieser Rezept von Xamarin basiert. Das einzige Problem, dem ich gegenüber stand, das ich nicht überwinden kann, scheint ziemlich einfach zu sein, aber ich kann keine Ahnung davon finden.Xamarin.Android: Wie benutze ich konfrontiert Kamera in Xamarin Rezept

Dies ist receipe ich benutze: https://developer.xamarin.com/recipes/android/media/video/record_video/

ich zurück wechseln möchte Kamera zu stellen.

Kann mir jemand dabei helfen?

Hier ist mein Code:

 protected override void OnCreate (Bundle bundle) 
    { 
     base.OnCreate (bundle); 

     SetContentView (Resource.Layout.Main); 

     string path = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/test.mp4"; 

     var record = FindViewById<Button> (Resource.Id.Record); 
     var stop = FindViewById<Button> (Resource.Id.Stop); 
     var play = FindViewById<Button> (Resource.Id.Play);  
     var video = FindViewById<VideoView> (Resource.Id.SampleVideoView); 

     _player = MediaPlayer.Create(this, Resource.Raw.Non_Mots_1); 



     record.Click += delegate { 

      video.StopPlayback(); 
      _player.Start(); 
      recorder = new MediaRecorder(); 
      recorder.SetVideoSource (VideoSource.Camera); 
      recorder.SetAudioSource (AudioSource.Mic);    
      recorder.SetOutputFormat (OutputFormat.Default); 
      recorder.SetVideoEncoder (VideoEncoder.Default); 
      recorder.SetAudioEncoder (AudioEncoder.Default);  
      recorder.SetOutputFile (path);  
      recorder.SetPreviewDisplay (video.Holder.Surface);   
      recorder.Prepare(); 
      recorder.Start();  
     }; 

     stop.Click += delegate { 

      if (recorder != null) { 
       recorder.Stop(); 
       _player.Stop(); 
       recorder.Release(); 
      } 
     }; 

     play.Click += delegate { 

      var uri = Android.Net.Uri.Parse (path);   
      video.SetVideoURI (uri); 
      video.Start(); 
     }; 
    } 

    protected override void OnDestroy() 
    { 
     base.OnDestroy(); 

     if (recorder != null) { 
      recorder.Release(); 
      recorder.Dispose(); 
      recorder = null; 
     } 
    } 

} 

}

+0

Angenommen, Sie dies im Fluge tun wollen ... Sie haben [diese versucht ] (http://stackoverflow.com/questions/6599454/switch-back-front-camera-on-fly)? –

Antwort

0

Try VideoSource.Surface statt VideoSource.Camera