#android #streaming #android-mediaplayer #asx
#Android #потоковая передача #android-медиаплеер #asx
Вопрос:
Я пытался передать файл .asx в потоковом режиме, но он не работал, и mediaplayer возвращает ошибки.
Это мой код
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();
Я обнаружил следующую ошибку в 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)
Спасибо за ваше время. Я искал во многих местах, но нет действительного примера для потоковой передачи asx.
Ответ №1:
Вам нужно будет проанализировать файл .asx, чтобы найти там ссылки на реальный поток.
Вот ссылка на формат файла .asx, возможно, это может дать вам некоторые подсказки относительно того, как вы будете его анализировать: http://en.wikipedia.org/wiki/Advanced_Stream_Redirector
Я могу сказать вам, что мне удалось проанализировать один файл .asx с Scanner
помощью класса. Однако я не нашел никакого общего решения. Но, возможно, этого достаточно, чтобы вы начали.