gpt4 book ai didi

android - ExoPlayer 和 HLS 流媒体

转载 作者:行者123 更新时间:2023-11-30 02:05:49 26 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序,可以通过网络播放大型 MP3 文件。这些文件通常大约一个小时左右,在某些情况下,我遇到了一些非常不一致的行为,流在中间中断。

为了解决这个问题,我决定转向 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

感谢您的所有帮助和建议。

最佳答案

您的链接在 GitHub 当前可用的 ExoPlayer 中运行良好。

怎么做:

1) git 克隆 https://github.com/google/ExoPlayer.git

2) 在 Android Studio 中打开 ExoPlayer/demo 应用

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),

它奏效了。

关于android - ExoPlayer 和 HLS 流媒体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30676902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com