需要 metaDataChanged 信号触发响应
{
connect(player, SIGNAL(metaDataChanged()), this, SLOT(metaDataChange()));
}
void MainWindow::metaDataChange()
{
ui->menu_audioTrack->clear();
QList<QMediaMetaData> list_MMD = player->audioTracks();
qDebug() << "audioTracks" << list_MMD.length();
QActionGroup *actionGroup_audioTrack = new QActionGroup(this);
actionGroup_audioTrack->setExclusive(true);
for (int i=0; i<list_MMD.length(); i++) {
QAction *action = new QAction(QString::number(i));
action->setCheckable(true);
if (i == 0)
action->setChecked(true);
ui->menu_audioTrack->addAction(action);
actionGroup_audioTrack->addAction(action);
connect(action, &QAction::triggered, [=](){
action->setChecked(true);
int index = ui->menu_audioTrack->actions().indexOf(action);
player->setActiveAudioTrack(index);
});
}
}