首先用这行实例化你的 ExoPlayer:
exoPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT, minBufferMs, minRebufferMs);
如果您只想播放音频,您可以使用这些值:
RENDERER_COUNT = 1 //since you want to render simple audio
minBufferMs = 1000
minRebufferMs = 5000
可以根据您的要求调整两个缓冲区值
现在您必须创建一个数据源。当您想要流式传输 mp3 时,您可以使用 DefaultUriDataSource。您必须传递 Context 和 UserAgent。为了简单起见,播放本地文件并将 null 作为 userAgent 传递:
DataSource dataSource = new DefaultUriDataSource(context, null);
然后创建sampleSource:
ExtractorSampleSource sampleSource = new ExtractorSampleSource(
uri, dataSource, new Mp3Extractor(), RENDERER_COUNT, requestedBufferSize);
uri 指向您的文件,作为提取器,如果您想播放 mp3,您可以使用简单的默认 Mp3Extractor。 requestedBufferSize 可以根据您的要求再次调整。以 5000 为例。
现在您可以使用示例源创建音轨渲染器,如下所示:
MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
最后在你的 exoPlayer 实例上调用 prepare:
exoPlayer.prepare(audioRenderer);
开始播放通话:
exoPlayer.setPlayWhenReady(true);