使用 ExoPlayer
实例化你的 ExoPlayer:
exoPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT, minBufferMs, minRebufferMs);
要仅播放音频,你可以使用以下值:
RENDERER_COUNT = 1 //since you want to render simple audio
minBufferMs = 1000
minRebufferMs = 5000
两个缓冲区值都可以根据你的要求进行调整。
现在你必须创建一个 DataSource。如果要流式传输 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 指向你的文件,作为 Extractor,如果你想播放 mp3,可以使用简单的默认 Mp3Extractor。requestedBufferSize 可以根据你的要求再次调整。以 5000 为例。
现在,你可以使用示例源创建音轨渲染器,如下所示:
MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
最后在 exoPlayer 实例上调用 prepare:
exoPlayer.prepare(audioRenderer);
要开始播放通话:
exoPlayer.setPlayWhenReady(true);