如何获取 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 中所有媒体的元数据?的主要内容,如果未能解决你的问题,请参考以下文章
[Windows,Qt5,QMediaPlayer,QMediaPlaylist]:当前视频源更改时的微小持续黑屏
如何获取系统上可用的所有 Microsoft 媒体基础转换 (MFT) 的列表