【发布时间】:2018-09-13 01:54:33
【问题描述】:
我是 Exoplayer udp 流媒体的新手。我已经做了一些关于 HTTP 实时流的工作,但不是 udp。现在尝试在 exoplayer 上播放 udp 流,谷歌搜索了很多,但没有运气。
请查看以下 logcat。
任何帮助将不胜感激。
04-03 21:33:45.376 31547-31827/com.chernowii.udp_stream_android E/ExoPlayerImplInternal: Source error.
com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to udp://@x.x.x.x:xxxx
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:194)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:137)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
Caused by: java.net.MalformedURLException: unknown protocol: udp
at java.net.URL.<init>(URL.java:596)
at java.net.URL.<init>(URL.java:486)
at java.net.URL.<init>(URL.java:435)
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:341)
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:192)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:137)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
04-03 21:33:45.377 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onPlayerError...
04-03 21:33:45.378 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onTimelineChanged...
Listener-onLoadingChanged...isLoading:false
04-03 21:33:45.379 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onPlayerStateChanged...1
04-03 21:33:45.395 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onPlayerStateChanged...2
04-03 21:33:45.396 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onTimelineChanged...
Listener-onLoadingChanged...isLoading:true
04-03 21:33:48.406 31547-31827/com.chernowii.udp_stream_android E/ExoPlayerImplInternal: Source error.
com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to udp://@224.2.2.1:3000
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:194)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:137)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
Caused by: java.net.MalformedURLException: unknown protocol: udp
at java.net.URL.<init>(URL.java:596)
at java.net.URL.<init>(URL.java:486)
at java.net.URL.<init>(URL.java:435)
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:341)
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:192)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:137)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
04-03 21:33:48.419 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onPlayerError...
04-03 21:33:48.421 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onTimelineChanged...
04-03 21:33:48.422 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onLoadingChanged...isLoading:false
04-03 21:33:48.423 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onPlayerStateChanged...1
04-03 21:33:48.440 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onPlayerStateChanged...2
04-03 21:33:48.441 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onTimelineChanged...
04-03 21:33:48.442 31547-31547/com.chernowii.udp_stream_android V/ExoPlayer GP Demo: Listener-onLoadingChanged...isLoading:true
【问题讨论】:
-
在不知道您传递什么样的 URL 来接收 java.net.MalformedURLException 的情况下,很难为您提供帮助。我要试一试,说你错误地传递了一个 URL。见here
-
我正在使用 udp://@xxxx:xx
-
你能解决这个问题吗?
标签: java android udp exoplayer