我正在使用 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)
Run Code Online (Sandbox Code Playgroud)
所以请帮助我。
该错误表明您在想播放 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);
Run Code Online (Sandbox Code Playgroud)
ExoPlayer 的演示应用程序有一个createMediaSource方法,该方法演示了可用媒体源的创建。
| 归档时间: |
|
| 查看次数: |
3546 次 |
| 最近记录: |