无法从安卓扩展文件 OBB 在 Exoplayer 中播放 OGG 音频文件



我最近将我的应用程序音频文件资源切换到扩展文件。 问题是当我使用 APEZProvider 读取音频文件时,该应用程序无法播放任何内容。

请参阅外线玩家错误:

E/ExoPlayerImplInternal: Source error.
                     com.google.android.exoplayer2.source.UnrecognizedInputFormatException: None of the available extractors (MatroskaExtractor, FragmentedMp4Extractor, Mp4Extractor, Mp3Extractor, AdtsExtractor, Ac3Extractor, TsExtractor, FlvExtractor, OggExtractor, PsExtractor, WavExtractor) could read the stream.
                         at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractorHolder.selectExtractor(ExtractorMediaPeriod.java:705)
                         at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:628)
                         at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
                         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
                         at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                         at java.lang.Thread.run(Thread.java:818)
E/MMParserExtractor: FileSource::FILE_SOURCE_DATA_EN

我的自定义 APEZProvider:

public class ZipFileContentProvider extends APEZProvider {
String AUTHORITY = "sample.sample";
@Override
public String getAuthority() {
    return AUTHORITY;
}
public Uri readAudioFileFromObb(String filename){
    String path = "content://" + AUTHORITY + File.separator + filename;
    return Uri.parse(path);
}
}

我的安卓清单.xml

    <provider
        android:authorities="sample.sample"
        android:name=".PlaySong.ZipFileContentProvider"
        android:exported="true"
        android:multiprocess="true">
        <meta-data
            android:name="mainVersion"
            android:value="14"></meta-data>
    </provider>

外线游戏版本 = 'r2.2.0'

我怀疑您还需要在APEZContentProvider中覆盖getType()方法以返回适当的音频类型。

最新更新