有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java UDP流未在ExoPlayer上播放

我是新来的。我已经做了一些HTTP直播的工作,但没有udp。现在尝试在exoplayer上播放udp流时,谷歌搜索了很多次,但没有成功

请查看以下日志

任何帮助都将不胜感激

04-03 21:33:45.376 31547-31827/com.chernowii.udp_stream_安卓 E/ExoPlayerImplInternal: Source error.
    com.google.安卓.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to udp://@x.x.x.x:xxxx
        at com.google.安卓.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:194)
        at com.google.安卓.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:137)
        at com.google.安卓.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)
        at com.google.安卓.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.安卓.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:341)
        at com.google.安卓.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:192)
        at com.google.安卓.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:137) 
        at com.google.安卓.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692) 
        at com.google.安卓.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_安卓 V/ExoPlayer GP Demo: Listener-onPlayerError...
04-03 21:33:45.378 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onTimelineChanged...
    Listener-onLoadingChanged...isLoading:false
04-03 21:33:45.379 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onPlayerStateChanged...1
04-03 21:33:45.395 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onPlayerStateChanged...2
04-03 21:33:45.396 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onTimelineChanged...
    Listener-onLoadingChanged...isLoading:true
04-03 21:33:48.406 31547-31827/com.chernowii.udp_stream_安卓 E/ExoPlayerImplInternal: Source error.
    com.google.安卓.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to udp://@224.2.2.1:3000
        at com.google.安卓.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:194)
        at com.google.安卓.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:137)
        at com.google.安卓.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)
        at com.google.安卓.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.安卓.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:341)
        at com.google.安卓.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:192)
        at com.google.安卓.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:137) 
        at com.google.安卓.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692) 
        at com.google.安卓.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_安卓 V/ExoPlayer GP Demo: Listener-onPlayerError...
04-03 21:33:48.421 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onTimelineChanged...
04-03 21:33:48.422 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onLoadingChanged...isLoading:false
04-03 21:33:48.423 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onPlayerStateChanged...1
04-03 21:33:48.440 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onPlayerStateChanged...2
04-03 21:33:48.441 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onTimelineChanged...
04-03 21:33:48.442 31547-31547/com.chernowii.udp_stream_安卓 V/ExoPlayer GP Demo: Listener-onLoadingChanged...isLoading:true

共 (1) 个答案

  1. # 1 楼答案

    即使使用以下代码,我也有同样的问题:

    aExtractorMediaSourceFactory := TJExtractorMediaSource_Factory.JavaClass.init(fDataSourceFactory);
    aVideoSource := aExtractorMediaSourceFactory.createMediaSource(StrToJURI(aDataSource));
    aExtractorMediaSourceFactory := nil;
    

    似乎总是使用HTTP源类,而不是默认的数据源