gpt4 book ai didi

android - ExoPlayer:从 HTTP 流中获取歌曲元数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:15:32 27 4
gpt4 key购买 nike

我使用以下代码通过 ExoPlayer 播放音乐流:

        exoPlayer = ExoPlayer.Factory.newInstance(numRenderers, minBufSize, maxBufSize);
String url = Helper.getPr().getString("url", "http://mp3.nashe.ru:80/ultra-128.mp3");
Uri uri = Uri.parse(url);
Log.i(TAG, "Going to open " + url);
Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
DataSource dataSource = new DefaultUriDataSource(getApplicationContext(), USER_AGENT);
ExtractorSampleSource sampleSource = new ExtractorSampleSource(uri, dataSource, allocator, BUFFER_SEGMENT_COUNT * BUFFER_SEGMENT_SIZE);
audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
exoPlayer.addListener(this);
exoPlayer.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, volume);
exoPlayer.prepare(audioRenderer);
exoPlayer.setPlayWhenReady(true);

我找不到有关如何获取当前歌曲的艺术家和名称等元数据的任何信息。是否可以获取元数据,如果可以,如何获取?
非常感谢。

最佳答案

许多类型的媒体中有许多类型的元数据,这取决于您的流。但目前 Exoplayer 本身只能从 HLS 流(HTTP 直播)中解析元数据,他们从流中获取 ID3 数据。

正如您在 github 存储库问题上看到的那样,这是 Exoplayer 库中元数据的当前状态(2015 年 8 月): https://github.com/google/ExoPlayer/issues/704

如果是您的直播案例,我建议您在 github (https://github.com/google/ExoPlayer/tree/release-v2/demos) 上下载 Exoplayer 演示。演示中的示例之一在 LogCat 上显示流 ID3 元数据。

如果不是您的情况,现在 ExoPlayer 库中没有任何帮助。

但是还有一个替代解决方案,我已经将其用于 radio 流应用程序,并且效果很好:

IcyStreamMeta 从在线流广播中获取元数据:

Getting metadata from SHOUTcast using IcyStreamMeta

但不确定它是否适用于简单的 mp3 文件。

关于android - ExoPlayer:从 HTTP 流中获取歌曲元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33802903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com