我是幾個星期以來對Android開發的新手,我需要編寫一個應用程序來顯示用戶在UDP或RDP中組播的實時流。流位於一個地址,如「RTP://230.0.0.11:1234」,並通過WIFI發出的感謝該模塊: http://www.ikusi.es/public/ctrl_public_prod.php?accion=verProducto&id_familia=34&id_gama=186&id_producto=351在Android上顯示實時UDP或RTP流(多點傳送)
我已經試圖從玩家閱讀(Daroon球員,從PlayStore),它運作良好,所以我認爲我的愚蠢問題不是由於廣播。
我看到,這是能夠顯示視頻內容給用戶通過不同的方式:
使用新的意圖與ACTION_VIEW和Android選擇一個應用程序,可以查看內容;
使用MediaPlayer類和VideoView。
我有兩個問題,讓我們先從最重要的: - 對於以上這兩種解決方案,還有一個問題:我讀的每個地方的MediaPlayer只支持HTTP/S和RTSP協議,是這樣嗎?而對於這裏的行動的觀點是什麼,我嘗試過:
Uri streamURL = Uri.parse("rtp://230.0.0.11:1234");
Intent streamIntent = new Intent(Intent.ACTION_VIEW);
streamIntent.setData(streamURL);
// streamIntent.setDataAndType(streamURL,"video/*");
startActivity(streamIntent);
這裏是logcat的:
07-11 00:25:58.119: D/AndroidRuntime(2659): Shutting down VM
07-11 00:25:58.119: W/dalvikvm(2659): threadid=1: thread exiting with uncaught exception (group=0x40015560)
07-11 00:25:58.129: E/AndroidRuntime(2659): FATAL EXCEPTION: main
07-11 00:25:58.129: E/AndroidRuntime(2659): java.lang.IllegalStateException: Could not execute method of the activity
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.view.View$1.onClick(View.java:2144)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.view.View.performClick(View.java:2485)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.view.View$PerformClick.run(View.java:9080)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.os.Handler.handleCallback(Handler.java:587)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.os.Handler.dispatchMessage(Handler.java:92)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.os.Looper.loop(Looper.java:123)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.app.ActivityThread.main(ActivityThread.java:3683)
07-11 00:25:58.129: E/AndroidRuntime(2659): at java.lang.reflect.Method.invokeNative(Native Method)
07-11 00:25:58.129: E/AndroidRuntime(2659): at java.lang.reflect.Method.invoke(Method.java:507)
07-11 00:25:58.129: E/AndroidRuntime(2659): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-11 00:25:58.129: E/AndroidRuntime(2659): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-11 00:25:58.129: E/AndroidRuntime(2659): at dalvik.system.NativeStart.main(Native Method)
07-11 00:25:58.129: E/AndroidRuntime(2659): Caused by: java.lang.reflect.InvocationTargetException
07-11 00:25:58.129: E/AndroidRuntime(2659): at java.lang.reflect.Method.invokeNative(Native Method)
07-11 00:25:58.129: E/AndroidRuntime(2659): at java.lang.reflect.Method.invoke(Method.java:507)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.view.View$1.onClick(View.java:2139)
07-11 00:25:58.129: E/AndroidRuntime(2659): ... 11 more
07-11 00:25:58.129: E/AndroidRuntime(2659): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=rtp://230.0.0.11:1234 }
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.app.Activity.startActivityForResult(Activity.java:2827)
07-11 00:25:58.129: E/AndroidRuntime(2659): at android.app.Activity.startActivity(Activity.java:2933)
07-11 00:25:58.129: E/AndroidRuntime(2659): at fr.infosat.tvreplay.MainActivity.listStream(MainActivity.java:35)
07-11 00:25:58.129: E/AndroidRuntime(2659): ... 14 more
07-11 00:26:00.079: I/Process(2659): Sending signal. PID: 2659 SIG: 9
我的理解是錯誤的InvocationTargetException,通常是由於在類名錯誤,無法解析直接在這裏,因爲我沒有在startActivity中調用任何類。不過,我認爲我的語法不正確,也許該方法不適合使用。當然,如果我取消註釋setDataAndType行,它會顯示相同的錯誤。
我注意到當我啓動我的隱含意圖時出現錯誤。
- 我的第二個問題是Daroon Player在我的機頂盒上運行良好,我可以在電視上看到我的流。但是當我嘗試從Eclipse模擬器啓動它時,它不會播放,即使我可以從VLC播放它...模擬器是否足夠強大,可以讀取這些類型的流?
我希望你有一些關於如何解決這個問題的線索! :)
嗨,尋找非常基本的多播UDP/RTP播放器。我可以爲您的服務付款。 – Pearlboy 2018-03-01 18:17:29