2011-11-01 5 views
2

J'ai essayé de diffuser le fichier .asx et il ne fonctionnait pas et mediaplayer renvoie des erreurs.Streaming .asx dans Android

C'est mon code

MediaPlayer mp = new MediaPlayer(); 
    MediaPlayer mp = new MediaPlayer(); 
       try { 
        Uri uri = Uri.parse("http://www.tamilatlas.com/tamilrmxs/dynasty/dynastychunez.asx"); 
        mp.setDataSource(uri.toString()); 
        mp.prepare(); 
       } catch (IllegalArgumentException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IllegalStateException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

mp.start(); 

J'ai trouvé l'erreur suivante dans logcat

11-01 10:03:59.484: E/MediaPlayer(21233): error (1, -2147483648) 
11-01 10:03:59.484: W/System.err(21233): java.io.IOException: Prepare failed.: status=0x1 
11-01 10:03:59.488: W/System.err(21233): at android.media.MediaPlayer.prepare(Native Method) 
11-01 10:03:59.488: W/System.err(21233): at com.mayuonline.streaming.StreamingActivity.onCreate(StreamingActivity.java:18) 
11-01 10:03:59.488: W/System.err(21233): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
11-01 10:03:59.488: W/System.err(21233): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
11-01 10:03:59.488: W/System.err(21233): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
11-01 10:03:59.488: W/System.err(21233): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
11-01 10:03:59.488: W/System.err(21233): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
11-01 10:03:59.492: W/System.err(21233): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-01 10:03:59.492: W/System.err(21233): at android.os.Looper.loop(Looper.java:123) 
11-01 10:03:59.496: W/System.err(21233): at android.app.ActivityThread.main(ActivityThread.java:3683) 
11-01 10:03:59.496: W/System.err(21233): at java.lang.reflect.Method.invokeNative(Native Method) 
11-01 10:03:59.499: W/System.err(21233): at java.lang.reflect.Method.invoke(Method.java:507) 
11-01 10:03:59.499: W/System.err(21233): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
11-01 10:03:59.499: W/System.err(21233): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
11-01 10:03:59.499: W/System.err(21233): at dalvik.system.NativeStart.main(Native Method) 
11-01 10:03:59.503: E/MediaPlayer(21233): start called in state 0 
11-01 10:03:59.507: E/MediaPlayer(21233): error (-38, 0) 
11-01 10:03:59.511: E/MediaPlayer(21233): Error (-38,0) 

Merci pour votre temps. J'ai cherché dans beaucoup de place mais il n'y a aucun exemple valide pour le streaming d'asx.

Répondre

1

Vous devrez analyser le fichier .asx, pour trouver le (s) lien (s) vers le flux réel.

Voici un lien pour le format de fichier .asx, peut-être que peut vous donner quelques conseils quant à la façon dont vous l'analyser: http://en.wikipedia.org/wiki/Advanced_Stream_Redirector

Je peux vous dire que j'ussi l'analyse syntaxique d'un fichier .asx avec le Scanner classe. Cependant, je n'ai pas trouvé de solution générale. Mais peut-être que c'est suffisant pour vous aider à démarrer.