Android ExoPlayer和HLS流媒体
我正在编写一个Android应用程序,它可以在网上播放一个大的MP3文件。这些文件通常大约一个小时左右,在某些情况下,我在中间截取了一些截然不同的行为。 为了解决这个问题,我决定转向ExoPlayer并使用HLS实现。虽然我能够毫无问题地播放苹果测试文件(beep boop),但我似乎无法让自己的任何流正常工作 每当我尝试访问自己的流时,播放器就会出错,我会得到以下堆栈跟踪: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
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文件的特定格式有关,即文件中的空格。我相信这在最近的版本中已经修复。谢谢你的帮助!