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