2014-10-20 6 views
5

In Xamarin für Android mit Videoview I-Code ein Video von RessourcenPlay-Video in Android mit Xamarin

Hier spielen will:

var videoView = (VideoView)FindViewById<VideoView> (Resource.Id.videoView); 
var Path = ("/Resources/raw/video.mp4"); 
var uri = Android.Net.Uri.Parse (Path); 
videoView.SetVideoURI (uri); 
videoView.Start(); 

Nach dem Aufruf von videoView.Start() Video spielt nicht und alles, was ich bekommen, ist diese Nachricht: kann nicht spielen dieses Video

+0

Haben Sie das auf einem Gerät getestet? Wenn nicht, könnte es sein, dass Ihr Emulator Schwierigkeiten hat, dieses Format zu spielen. –

Antwort

3

fand ich die Antwort:

public class MainActivity : Activity, MediaPlayer.IOnPreparedListener, ISurfaceHolderCallback 
    { 

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

      SetContentView (Resource.Layout.Main); 

      var videoView = (VideoView)FindViewById<VideoView> (Resource.Id.videoView); 

      ISurfaceHolder holder = videoView.Holder; 
      holder.SetType (SurfaceType.PushBuffers); 
      holder.AddCallback(this); 


      var descriptor = Assets.OpenFd("test.ogv"); 
      mediaPlayer = new MediaPlayer(); 
      mediaPlayer.SetDataSource(descriptor.FileDescriptor, descriptor.StartOffset, descriptor.Length); 
      mediaPlayer.Prepare(); 
      mediaPlayer.Looping = true; 
      mediaPlayer.Start(); 

     } 


     public void SurfaceCreated(ISurfaceHolder holder) 
     { 
      Console.WriteLine("SurfaceCreated"); 
      mediaPlayer.SetDisplay(holder); 
     } 
     public void SurfaceDestroyed(ISurfaceHolder holder) 
     { 
      Console.WriteLine("SurfaceDestroyed"); 
     } 
     public void SurfaceChanged(ISurfaceHolder holder, Android.Graphics.Format format, int w, int h) 
     { 
      Console.WriteLine("SurfaceChanged"); 
     } 
     public void OnPrepared(MediaPlayer player) 
     { 

     } 
    } 
+0

Wie ich bin im selben Boot .. wie können Sie Kontrollen wie "Play", "Pause", "Stop" mit der obigen Methode hinzufügen? – SoftSan

+0

@ Salome Tsiramua, ich möchte dieses Beispiel verwenden, um mehrere Videos innerhalb des Ordners auszuführen. Kann ich mehrere Videos in einem Ordner wiedergeben? Ich könnte die Antwort als mehrere Videos innerhalb des Ordners posten. – Cyberlacs

1
var uri= Android.Net.Uri.Parse("android.resource://" + Application.PackageName + "/" + Resource.Raw.demo); 
video.SetVideoURI(uri); 
video.Start(); 
+0

Ich habe einen Ordner in der Anwendung, der einige Videos von etwa 30 Sekunden enthält und möchte, dass die Anwendung alle Videos ausführt. Nach Abschluss der Re-Ausführung, Schleifen der Ausführung der Videos – Cyberlacs