无法通过ExoPlayer播放实时视频

时间:2017-12-01 11:05:12

标签: android exoplayer

我正在使用ExoPlayer在Android中播放视频。我们正在使用ExoPlayer播放mp4和现场视频。但有时我们会得到下面描述的例外情况。

> 12-01 14:15:09.388 12080-12517/com.mse.monumentalsnetwork
> E/ExoPlayerImplInternal: Source error.
>                                                                                    com.google.android.exoplayer2.source.UnrecognizedInputFormatException:
> Input does not start with the #EXTM3U header.
>                                                                                        at
> com.google.android.exoplayer2.source.hls.playlist.HlsPlaylistParser.parse(HlsPlaylistParser.java:119)
>                                                                                        at
> com.google.android.exoplayer2.source.hls.playlist.HlsPlaylistParser.parse(HlsPlaylistParser.java:43)
>                                                                                        at
> com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:115)
>                                                                                        at
> com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)
>                                                                                        at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
>                                                                                        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
>                                                                                        at java.lang.Thread.run(Thread.java:818)

所以请帮帮我。

2 个答案:

答案 0 :(得分:2)

错误表示您在播放MP4文件时正在使用HlsMediaSource。它无法解析HLS清单。

你需要使用ExtractorMediaSource来播放MP4:

DefaultHttpDataSourceFactory dataSource = new DefaultHttpDataSourceFactory(
    Util.getUserAgent(this, "your-user-agent"));
ExtractorMediaSource mediaSource = new ExtractorMediaSource.Factory(dataSource)
    .createMediaSource(uri, null, null);
player.setPlayWhenReady(true);
player.prepare(mediaSource);

ExoPlayer的演示应用程序使用createMediaSource方法演示了可用媒体源的创建。

答案 1 :(得分:0)

检查您的URL。可能是您的URL包含空格,您可以像这样替换:

String StringName= "Your URL".replaceAll(" ","%20");