需要 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);});}
}