hoffe, bin diesmal im richtigen Unterforum
Beim Programmieren eines Radiorippers mit streamripper benutze ich Phonon. Es funktioniert einwandfrei.
Jetzt möchte ich allerdings beim einfachen Abspielen eines Streams ohne Aufnahme die ID3-Daten des Streams ermitteln.
Folgende Abfrage bringt zwar allerhand ID3-Tags, aber nicht die gewünschten (Titel,Artist). Streamripper findet diese aber...
Zudem wird das metaDataChanged()-Signal nur beim Start der Aufnahme ausgelöst. Wenn während des Abspielens das Lied und somit auch die ID3-Infos ändern, dann wird dieses Signal NICHT ausgelöst.
Poste mal den fraglichen Code:
mainwindow.cpp:
Code: Alles auswählen
musikplayer = new Phonon::MediaObject(this);
musikausgabe = new Phonon::AudioOutput(Phonon::MusicCategory, this);
Phonon::createPath(musikplayer, musikausgabe);
(...)
connect(musikplayer, SIGNAL(metaDataChanged()), this, SLOT(metaInfoGeaendert()));
(...)
void MainWindow::metaInfoGeaendert() {
QMap<QString,QString> metaData = musikplayer->metaData();
ui->radios->item(isPlay,3)->setText(metaData.value("ARTIST"));
ui->radios->item(isPlay,4)->setText(metaData.value("TITLE"));
}
Code: Alles auswählen
void MainWindow::metaInfoGeaendert() {
QMap<QString,QString> metaData = musikplayer->metaData();
QStringList keys = metaData.keys();
QString k;
for(int i = 0; i < keys.size(); ++i) {
k += keys.at(i) + "\n";
}
QMessageBox::information(this,"keys",k);
QStringList values = metaData.values();
QString v;
for(int i = 0; i < values.size(); ++i) {
v += values.at(i) + "\n";
}
QMessageBox::information(this,"values",v);
ui->radios->item(0,3)->setText(metaData.value("ARTIST"));
ui->radios->item(0,4)->setText(metaData.value("TITLE"));
}
Wie erhält streamripper denn diese Daten?