我目前正在寻找通过Android中的ExoPlayer开发利用Dash的应用程序.
首先,我正在进行演示项目,但是即使创建一个可以流式播放mp3或类似内容的ExoPlayer的简单工作实例也遇到了麻烦.
非常感谢任何人可以提供的任何帮助,以获得一个非常简单的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);