如何获取 QMediaPlaylist 中所有媒体的元数据?

Posted

技术标签:

【中文标题】如何获取 QMediaPlaylist 中所有媒体的元数据?【英文标题】:How to get metadata of all media in QMediaPlaylist? 【发布时间】:2018-04-08 10:46:30 【问题描述】:

我正在开发一个实现媒体播放器的 Ubuntu qt 项目。由于QMediaObject::metaData 只能获取当前媒体的元数据,我想知道是否有办法获取我在QMediaPlaylist 添加到表中的所有歌曲的元数据。任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

Qt Multimedia 只支持查询当前歌曲的元数据。一种可能是同时加载所有歌曲一首,当状态为QMediaPlayer::LoadedMedia(连接到mediaStatusChanged() 信号)并且isMetaDataAvailable() 返回true 时查询元数据,然后关闭媒体并移动到下一个。 /p>

如果您想事先获得所有音频文件的元数据,您需要使用其他库或框架来扫描媒体文件并为您创建一个“元数据数据库”,然后在显示所有歌曲列表时使用该数据库。

一种可能的解决方案是编写一个 Python 脚本,该脚本使用 Mutagen 模块来检索元数据。它支持 ASF、FLAC、MP4、Monkey's Audio、MP3、Musepack、Ogg Opus、Ogg FLAC、Ogg Speex、Ogg Theora、Ogg Vorbis、True Audio、WavPack、OptimFROG 和 AIFF 音频文件。支持所有版本的ID3v2,解析所有标准的ID3v2.4帧。

您可以在 Google 上寻求帮助来编写脚本,例如How do I access these ID3 values using Python and Mutagen , Accessing mp3 Meta-Data with Python

当您将新歌曲添加到播放列表时,您可以通过 QMediaPlayer 加载歌曲以查询其元数据,或者启动查询元数据并添加到“元数据数据库”的脚本。

【讨论】:

以上是关于如何获取 QMediaPlaylist 中所有媒体的元数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 sitecore 中获取媒体项目详细信息?

如何在照片库中获取重复媒体?

[Windows,Qt5,QMediaPlayer,QMediaPlaylist]:当前视频源更改时的微小持续黑屏

如何获取系统上可用的所有 Microsoft 媒体基础转换 (MFT) 的列表

Instagram API:获取所有用户媒体 API 并存储到文件

从 iOS 媒体库中获取所有艺术家的列表