2017-07-25 3 views
0

Ich versuche, Musik aus einer Stream-URL zu spielen, ich habe diesen CodeFehler beim Anruf auf Zustand 4 Xamarin.android Mediaplayer

class AudioImplementation : ISound 
{ 
private MediaPlayer mediaPlayer; 

public AudioImplementation() { } 

public Context ApplicationContext { get; private set; } 

public void Initializer() 
{ 
    mediaPlayer = new MediaPlayer(); 
    mediaPlayer.SetAudioStreamType(Stream.Music);  
} 

public void Play(string aux) 
{ 
    if (mediaPlayer == null) 
    { 
     Initializer(); 
    } 
    try 
    { 
     mediaPlayer.SetDataSource(aux); 
     mediaPlayer.Prepare(); 
     mediaPlayer.Start(); 
    } 
    catch (Exception ex) 
    { 
     //unable to start playback log error 
     Console.WriteLine("Unable to start playback: " + ex); 
    } 
    } 
} 

Aber ich bin immer einen Startfehler im Zustand genannt 4, mPlayer Fehler. Kann mir bitte jemand helfen oder mich in die richtige Richtung lenken?

Antwort

0

Sie könnten IOnPreparedListener für MediaPlayer festlegen, so dass start() Methode aufgerufen wird, nachdem MediaPlayer vorbereitet ist. Code wie folgt:

mediaPlayer.SetDataSource(aux); 
mediaPlayer.Prepare(); 
mediaPlayer.SetOnPreparedListener(new MyListener(this)); 

class MyListener : Java.Lang.Object, MediaPlayer.IOnPreparedListener 
{ 
    private AudioImplementation audioImplementation; 

    public MyListener(AudioImplementation audioImplementation) 
    { 
     this.audioImplementation = audioImplementation; 
    } 

    public void OnPrepared(MediaPlayer mp) 
    { 
     audioImplementation.mediaPlayer.Start(); 
    } 
} 
Verwandte Themen