Workaround for broken CD playback in Qt5 (#6021)
* Workaround for cdda URL in qUrl() * Workaround for cdda URL in qUrl() * Fix code formatting * Fix code style
This commit is contained in:
parent
5966ff51cc
commit
335bc89c97
|
@ -35,7 +35,7 @@ CddaSongLoader::~CddaSongLoader() {
|
|||
|
||||
QUrl CddaSongLoader::GetUrlFromTrack(int track_number) const {
|
||||
if (url_.isEmpty()) {
|
||||
return QUrl(QString("cdda://%1").arg(track_number));
|
||||
return QUrl(QString("cdda://%1a").arg(track_number));
|
||||
} else {
|
||||
return QUrl(QString("cdda://%1/%2").arg(url_.path()).arg(track_number));
|
||||
}
|
||||
|
|
|
@ -181,9 +181,16 @@ bool GstEnginePipeline::ReplaceDecodeBin(const QUrl& url) {
|
|||
spotify_server, "StartPlayback", Qt::QueuedConnection,
|
||||
Q_ARG(QString, url.toString()), Q_ARG(quint16, port));
|
||||
} else {
|
||||
QByteArray uri;
|
||||
if (url.scheme() == "cdda") {
|
||||
QString str = url.toString();
|
||||
str.remove(str.lastIndexOf(QChar('a')), 1);
|
||||
uri = str.toUtf8();
|
||||
} else {
|
||||
uri = url.toEncoded();
|
||||
}
|
||||
new_bin = engine_->CreateElement("uridecodebin");
|
||||
g_object_set(G_OBJECT(new_bin), "uri", url.toEncoded().constData(),
|
||||
nullptr);
|
||||
g_object_set(G_OBJECT(new_bin), "uri", uri.constData(), nullptr);
|
||||
CHECKED_GCONNECT(G_OBJECT(new_bin), "drained", &SourceDrainedCallback,
|
||||
this);
|
||||
CHECKED_GCONNECT(G_OBJECT(new_bin), "pad-added", &NewPadCallback, this);
|
||||
|
|
Loading…
Reference in New Issue