Android ExoPlayer和HLS流媒体

Android ExoPlayer和HLS流媒体,android,audio,streaming,http-live-streaming,Android,Audio,Streaming,Http Live Streaming,我正在编写一个Android应用程序,它可以在网上播放一个大的MP3文件。这些文件通常大约一个小时左右,在某些情况下,我在中间截取了一些截然不同的行为。 为了解决这个问题,我决定转向ExoPlayer并使用HLS实现。虽然我能够毫无问题地播放苹果测试文件(beep boop),但我似乎无法让自己的任何流正常工作 每当我尝试访问自己的流时,播放器就会出错,我会得到以下堆栈跟踪: 06-05 18:15:22.898 29566-29566/com.application E/EventLogge

我正在编写一个Android应用程序,它可以在网上播放一个大的MP3文件。这些文件通常大约一个小时左右,在某些情况下,我在中间截取了一些截然不同的行为。

为了解决这个问题,我决定转向ExoPlayer并使用HLS实现。虽然我能够毫无问题地播放苹果测试文件(beep boop),但我似乎无法让自己的任何流正常工作

每当我尝试访问自己的流时,播放器就会出错,我会得到以下堆栈跟踪:

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)
从MP3为Android创建HLS流的正确方法是什么?为了进行测试,我尝试了许多ffmpeg导出,并使用S3来提供文件,但没有成功

其中一个样本可在此处找到:


感谢您的帮助和建议。

您的链接在GitHub当前提供的ExoPlayer中运行良好

如何做到:

1) git克隆

2) 在Android Studio中打开ExoPlayer/演示应用程序

3) 编辑ExoPlayer/demo/src/main/java/com/google/android/ExoPlayer/demo/Samples.java并添加

  public static final Sample[] HLS = new Sample[] {
    new Sample("Stackoverflow",
            "https://s3.amazonaws.com/gte619n/test_stream/output_test.m3u8",
            PlayerActivity.TYPE_HLS),

它成功了。

Hey Jacob,原来问题与HLS文件的特定格式有关,即文件中的空格。我相信这在最近的版本中已经修复。谢谢你的帮助!