使用 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);