在 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 标签?的主要内容,如果未能解决你的问题,请参考以下文章
在 Powershell 中使用 TagLib 读取 id3v2 帧
使用 Google App Engine 在服务器端读取 ID3 标签