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

时间:2018-04-08 10:46:30

标签: qt metadata qmediaplayer

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

1 个答案:

答案 0 :(得分:0)

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

如果您想预先拥有所有音频文件的元数据,则需要使用一些其他库或框架来扫描媒体文件并创建一个"元数据数据库"对于你在显示所有歌曲列表时使用的你。

一种可能的解决方案是编写一个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帧。

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

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