gpt4 book ai didi

android - 使用 MediaMetadataRetriever 提取元数据有意外结果

转载 作者:行者123 更新时间:2023-11-29 21:18:11 27 4
gpt4 key购买 nike

我正在尝试为 Android 构建我自己的音乐播放器。

对于列表,我需要歌曲的元数据,所以我使用 MediaMetadataRetriever 来提取它们,但是检索器无法提取大多数歌曲的元数据(~630 669).在我的 PC 音乐软件中,元数据是可见的,在 Windows 资源管理器中也是如此。如果我打开歌曲的属性,我可以修改它们,如果我将修改后的文件加载到手机上,它仍然不起作用。顺便说一句:如果我在手机上使用任何其他播放器,它总是能够加载元数据。

MediaMetadataRetriever 有问题吗?我应该使用其他库来提取还是我做错了什么?

This问题是相关的,但并不能真正帮助解决我的问题。

这里是我的一些代码作为例子:

MediaMetadataRetriever lMetaData = new MediaMetadataRetriever();
lMetaData.setDataSource(mAbsolutePath);
mArtist = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
mTitle = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
mAlbum = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
mAlbumArtist = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST);
mGenre = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE);
mSongNumber = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER);
mYear = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR);

if(mArtist == null)
mArtist = new String("");
if(mTitle == null)
mTitle = new String("");
if(mAlbum == null)
mAlbum = new String("");
if(mAlbumArtist == null)
mAlbumArtist = new String("");
if(mGenre == null)
mGenre = new String("");
if(mSongNumber == null)
mSongNumber = new String("");
if(mYear == null)
mYear = new String("");

最佳答案

MediaMetadataRetriever 仅支持少数格式。我推荐FFmpegMediaMetadataRetriever .它支持多种附加格式和协议(protocol)。

关于android - 使用 MediaMetadataRetriever 提取元数据有意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21034929/

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