Android add support for qrc in mediaplayer.
[ChangeLog][QtMultimedia][Android] Enable mediaplayer to read files from the Qt Resource system. Task-number: QTBUG-31422 Change-Id: Iaaefb35566b623b78b9f8aa22daf6ac92fb35e67 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
This commit is contained in:
committed by
The Qt Project
parent
9ceb1c083e
commit
966d4bc86f
@@ -218,10 +218,19 @@ void QAndroidMediaPlayerControl::setMedia(const QMediaContent &mediaContent,
|
||||
return;
|
||||
}
|
||||
|
||||
const QString uri = mediaContent.canonicalUrl().toString();
|
||||
const QUrl url = mediaContent.canonicalUrl();
|
||||
QString mediaPath;
|
||||
if (url.scheme() == QLatin1String("qrc")) {
|
||||
const QString path = url.toString().mid(3);
|
||||
mTempFile.reset(QTemporaryFile::createNativeFile(path));
|
||||
if (!mTempFile.isNull())
|
||||
mediaPath = QLatin1String("file://") + mTempFile->fileName();
|
||||
} else {
|
||||
mediaPath = url.toString();
|
||||
}
|
||||
|
||||
if (!uri.isEmpty())
|
||||
mMediaPlayer->setDataSource(uri);
|
||||
if (!mediaPath.isEmpty())
|
||||
mMediaPlayer->setDataSource(mediaPath);
|
||||
else
|
||||
setMediaStatus(QMediaPlayer::NoMedia);
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#include <qglobal.h>
|
||||
#include <QMediaPlayerControl>
|
||||
#include <qsize.h>
|
||||
#include <QtCore/QTemporaryFile>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@@ -114,6 +115,7 @@ private:
|
||||
QMediaPlayer::State mPendingState;
|
||||
qint64 mPendingPosition;
|
||||
bool mPendingSetMedia;
|
||||
QScopedPointer<QTemporaryFile> mTempFile;
|
||||
|
||||
void setState(QMediaPlayer::State state);
|
||||
void setMediaStatus(QMediaPlayer::MediaStatus status);
|
||||
|
||||
Reference in New Issue
Block a user