Phonon+Radiostreams Phonon findet zwar, aber nicht alle ID3
Verfasst: 14. November 2009 12:31
Hallo Leutz,
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:
Die beiden Felder Artist und Title bleiben jedoch leer. Folgende Abfrage:
bringt alle verfügbaren Daten, jedoch scheinen die gewollten nicht vorhanden zu sein.
Wie erhält streamripper denn diese Daten?
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?