我正在编写一个Android应用程序,通过网络播放大型MP3文件。这些文件通常大约一个小时左右,并且在某些情况下,我一直在流中断流的情况下出现一些非常不一致的行为。ExoPlayer和HLS流
为了解决这个问题,我决定转移到ExoPlayer并使用HLS实现。虽然我能够毫无问题地播放Apple测试文件(嘟嘟声),但似乎无法让我自己的任何流都能正常工作。
每当我尝试访问我自己的流,播放器的错误了,我得到了下面的堆栈跟踪:
06-05 18:15:22.898 29566-29566/com.application E/EventLogger﹕ internalError [0.66, loadError]
java.io.EOFException
at com.google.android.exoplayer.extractor.DefaultExtractorInput.readFully(DefaultExtractorInput.java:73)
at com.google.android.exoplayer.extractor.ts.TsExtractor.read(TsExtractor.java:102)
at com.google.android.exoplayer.hls.HlsExtractorWrapper.read(HlsExtractorWrapper.java:214)
at com.google.android.exoplayer.hls.TsChunk.load(TsChunk.java:110)
at com.google.android.exoplayer.upstream.Loader$LoadTask.run(Loader.java:242)
什么是从针对Android的MP3创建一个HLS流的正确方法是什么?为了测试,我尝试了一些ffmpeg导出,并使用S3来提供这些文件,但是我一直没有成功。
一个样品可以在这里找到:https://s3.amazonaws.com/gte619n/test_stream/output_test.m3u8
感谢您对您的帮助和建议。
嘿雅各,事实证明,这个问题与HLS文件的特定格式有关,即文件中的空格。我相信这是在最近的版本中修复的。谢谢你的帮助! –