Qt QMediaPlayer::metaData()可以';我拿不到mp3的封面
我将带封面的mp3媒体设置为Qt QMediaPlayer::metaData()可以';我拿不到mp3的封面,qt,metadata,qmediaplayer,Qt,Metadata,Qmediaplayer,我将带封面的mp3媒体设置为QMediaPlayer,调用QMediaPlayer::isMetaDataAvailable(),它返回true,然后调用QMediaPlayer::availableMetaData(),它返回以下内容: ("Author", "AverageLevel", "Description", "PeakValue", "Title", "WM/AlbumArtist", "WM/AlbumTitle", "WM/Composer", "WM/ContentGroup
QMediaPlayer
,调用QMediaPlayer::isMetaDataAvailable()
,它返回true,然后调用QMediaPlayer::availableMetaData()
,它返回以下内容:
("Author", "AverageLevel", "Description", "PeakValue", "Title", "WM/AlbumArtist", "WM/AlbumTitle", "WM/Composer", "WM/ContentGroupDescription", "WM/Genre", "WM/Picture", "WM/Track", "WM/TrackNumber", "WM/Year")
例如,如果我调用QMediaPlayer::metaData(QMediaMetaData::Title).toString()
它将返回正确的标题。
但出于某种原因,上述一切都只会带来空虚:
qDebug()<< player->metaData(QMediaMetaData::CoverArtImage).toString();
qDebug()<< player->metaData(QMediaMetaData::CoverArtUrlLarge).toString();
qDebug()<< player->metaData(QMediaMetaData::CoverArtUrlLarge).toString();
qDebug()<< player->metaData(QMediaMetaData::CoverArtUrlSmall).toString();
qDebug()<< player->metaData(QMediaMetaData::PosterImage).toString();
qDebug()<< player->metaData(QMediaMetaData::PosterUrl).toString();
qDebug()元数据(QMediaMetaData::coveratimage.toString();
qDebug()元数据(QMediaMetaData::covertartrlarge).toString();
qDebug()元数据(QMediaMetaData::covertartrlarge).toString();
qDebug()元数据(QMediaMetaData::covertartsallow).toString();
qDebug()元数据(QMediaMetaData::PosterImage.toString();
qDebug()元数据(QMediaMetaData::PosterUrl).toString();
我不明白为什么。有人能给我一些建议吗?
covertarimage
和PosterImage
返回QImage
。我不确定您是否可以将变体转换为字符串。您是否尝试过player->metdata(“WM/Picture”)
?然后variant.value()
从变量获取实际图像?player->metaData(“WM/Picture”).value().isNull()
返回true@Kikohsdid您在将变体投射到qimage之前检查它吗?该QVariant
的输出如下:QVariant(无效)
@kikohstis这太奇怪了。即使它返回“WM/Picture”
作为QMediaPlayer::availableMetaData()
的一部分,但当我尝试QMediaPlayer::metaData(“WM/Picture”).isValid()
时,它返回false,并且QMediaPlayer::metaData(“WM/Picture”).isNull()代码>返回true。。