【发布时间】:2015-07-19 11:11:50
【问题描述】:
自从从 Mediaplayer 切换到一个简单的实现 Exoplayer 后,我注意到加载时间有了很大改善,但我想知道是否有任何内置功能,例如流式传输音频时的元数据更改侦听器?
我已经用一个简单的例子实现了 Exoplayer,如下所示:
Uri uri = Uri.parse(url);
DefaultSampleSource sampleSource =
new DefaultSampleSource(new FrameworkSampleExtractor(context, uri, null), 2);
TrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
mExoPlayerInstance.prepare(audioRenderer);
mExoPlayerInstance.setPlayWhenReady(true);
【问题讨论】:
-
嗨 Jaz,您可以分享从 mediaplayer 升级到 exoplayer 所做的工作吗?谢谢
-
嗨 alexistkd,我在下面发布了使用 Exoplayer 的代码。没有关于流元数据的解决方案,但它在播放流时效果很好。
-
能否在标题中发布元数据?也许元数据在流中,并且有一个像“icy-mettaint:16000”这样的指示符,这就是我对 icecast 流 URL 所拥有的 - AACPlayer 库可以从每隔 16000 字节发送的流中的此类元数据中解码歌曲标题,我我试图弄清楚如何用 ExoPlayer 复制它。
-
实际上,看起来有人做了一个库github.com/vsmaks/audiostream-metadata-retriever 它会创建一个单独的 URLConnection。也许可以将一些代码调整到您的 ExoPlayer 实现中并保持不变。但是使用这个库将是一个快速的解决方案。
-
最初我创建了另一个流来读取数据并提取元数据,但担心非蜂窝连接上的用户的数据使用情况。如果这不是问题,则第二个连接有效。
标签: android metadata icecast exoplayer