在 Xamarin/Android 中读取 ID3 标签?

Posted

技术标签:

【中文标题】在 Xamarin/Android 中读取 ID3 标签?【英文标题】:Reading ID3 tags in Xamarin/Android? 【发布时间】:2013-10-11 03:00:32 【问题描述】:

有可能吗?有多容易?

我添加了对 TaglibSharp 的引用,这是一个用于 C# 的 ID3 库,我在 .NET 应用程序中使用了很长时间,但在活动/任何类中都没有检测到它。 Taglib 是为(我认为)Mono/.NET 3.5 构建的,但我假设它需要为 android“重建”? (我打开了库的源代码,Visual Studio 和 Xamarin 中平台的唯一选择是 Mono 和 .NET 的变体)

如果使用 Taglib 是不可能的,因为它最终无法在 Android 平台上运行,还有其他方法吗?我已经广泛搜索了 Xamarin ID3 支持,我发现的只是this。

有人能指出正确的方向吗?

【问题讨论】:

您需要从源代码构建 TaglibSharp。 @Jason Hmmm ..我想我可以从 Github 获取完整的解决方案并使用 Visual Studio 构建它,但我不需要为 Xamarin/Android 构建它,不同于 .NET ?我没有太多在 .NET 之外工作的经验。 你读过this吗? @Sam 我可能错了,但 Mono.Android.Media 中的 Mediametadataretriever 是吗?我似乎找不到它。如果您指的是其余答案,即逐字节读取数据,我可以这样做,我只是希望找到一个更简单的解决方案。 @Wilson 它应该在那里:Android.Media.MediaMetadataRetriever。还是找不到吗? 【参考方案1】:

您应该能够使用Android.Media.MediaMetadataRetriever 类来阅读您需要的所有信息。

这是一个如何获取文件标题的示例,

MediaMetadataRetriever reader = new MediaMetadataRetriever();

reader.setDataSource("some file path");

String title = reader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);

MediaMetadataRetriever.extractMetadata() 选项,

MetadataKeyAlbum:要检索的元数据键 数据源的专辑标题信息。

MetadataKeyAlbumartist:元数据密钥 检索有关表演者或艺术家的相关信息 与数据源。

MetadataKeyArtist:要检索的元数据键 数据源的艺术家信息。

MetadataKeyAuthor:要检索的元数据键 有关数据源作者的信息。

MetadataKeyBitrate:此密钥检索 平均比特率(以比特/秒为单位),如果有的话。

MetadataKeyCdTrackNumber:元数据 检索描述音频顺序的数字字符串的键 原始记录的数据源。

MetadataKeyCompilation:元数据密钥 检索音乐专辑的编辑状态。

MetadataKeyComposer:元数据密钥 检索有关数据源编写者的信息。

MetadataKeyDate:要检索的元数据键 创建或修改数据源的日期。

MetadataKeyDiscNumber:元数据密钥 检索描述集合的哪一部分的数字字符串 音频数据来源来自。

MetadataKeyDuration:元数据密钥 检索数据源的播放时长。

MetadataKeyGenre:要检索的元数据键 数据源的内容类型或流派。

MetadataKeyHasAudio: 如果这个键存在 媒体包含音频内容。

MetadataKeyHasVideo: 如果这个键存在 media 包含视频内容。

MetadataKeyMimetype:元数据密钥 检索数据源的 mime 类型。

MetadataKeyNumTracks:元数据密钥 检索数据中的音轨数量,例如音频、视频、文本 源文件,例如 mp4 或 3gpp 文件。

MetadataKeyTitle:要检索的元数据键 数据源标题。

MetadataKeyVideoHeight: 如果媒体包含 视频,此键检索其高度。

MetadataKeyVideoWidth: 如果媒体包含 视频,此键检索其宽度。

MetadataKeyWriter:要检索的元数据键 数据源作者(如作词人)的信息。

MetadataKeyYear:用于检索创建或修改数据源的年份的元数据键。

Source.

【讨论】:

太好了,感谢您的彻底回复。还有一个问题,编写 ID3 标签是同样容易,还是完全不同? @Wilson 这可能有一个隐藏的库,但不幸的是我什么都不知道;这意味着您自己手动编写标签,逐个字节地编写标签,但这有点棘手。 This 应该帮助你,如果你想“手动”做的话。

以上是关于在 Xamarin/Android 中读取 ID3 标签?的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中读取 mp3 id3 标签

在 Powershell 中使用 TagLib 读取 id3v2 帧

无法在 Xamarin Android 上播放本地视频

使用 Google App Engine 在服务器端读取 ID3 标签

获取ObtainStyledAttributes以在Android的xamarin中正常工作

如何从 BufferedInputStream 中读取 id3 标签?