--- a/qtmobility/examples/player/player.cpp Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/examples/player/player.cpp Wed Jun 23 19:08:38 2010 +0300
@@ -71,15 +71,17 @@
, toggleAspectRatio(0)
, showYoutubeDialog(0)
, youtubeDialog(0)
+#else
, audioEndpointSelector(0)
-#else
, colorDialog(0)
#endif
{
+//! [create-objs]
player = new QMediaPlayer(this);
- // owerd by PlaylistModel
+ // owned by PlaylistModel
playlist = new QMediaPlaylist();
- playlist->setMediaObject(player);
+ player->setPlaylist(playlist);
+//! [create-objs]
connect(player, SIGNAL(durationChanged(qint64)), SLOT(durationChanged(qint64)));
connect(player, SIGNAL(positionChanged(qint64)), SLOT(positionChanged(qint64)));
@@ -90,11 +92,13 @@
connect(player, SIGNAL(bufferStatusChanged(int)), this, SLOT(bufferingProgress(int)));
connect(player, SIGNAL(error(QMediaPlayer::Error)), this, SLOT(displayErrorMessage()));
+//! [2]
videoWidget = new VideoWidget(this);
- videoWidget->setMediaObject(player);
+ player->setVideoOutput(videoWidget);
playlistModel = new PlaylistModel(this);
playlistModel->setPlaylist(playlist);
+//! [2]
playlistView = new QListView(this);
playlistView->setModel(playlistModel);
@@ -107,8 +111,19 @@
connect(slider, SIGNAL(sliderMoved(int)), this, SLOT(seek(int)));
- audioEndpointSelector = qobject_cast<QAudioEndpointSelector*>(player->service()->control(QAudioEndpointSelector_iid));
- connect(audioEndpointSelector, SIGNAL(activeEndpointChanged(const QString&)), this, SLOT(handleAudioOutputChangedSignal(const QString&)));
+ QMediaService *service = player->service();
+ if (service) {
+ QMediaControl *control = service->requestControl(QAudioEndpointSelector_iid);
+ if (control) {
+ audioEndpointSelector = qobject_cast<QAudioEndpointSelector*>(control);
+ if (audioEndpointSelector) {
+ connect(audioEndpointSelector, SIGNAL(activeEndpointChanged(const QString&)),
+ this, SLOT(handleAudioOutputChangedSignal(const QString&)));
+ } else {
+ service->releaseControl(control);
+ }
+ }
+ }
#ifndef Q_OS_SYMBIAN
QPushButton *openButton = new QPushButton(tr("Open"), this);
@@ -226,13 +241,22 @@
metaDataChanged();
- QStringList fileNames = qApp->arguments();
- fileNames.removeAt(0);
- foreach (QString const &fileName, fileNames) {
- if (fileName.startsWith(QLatin1String("http://")))
- playlist->addMedia(QUrl(fileName));
- else if (QFileInfo(fileName).exists())
- playlist->addMedia(QUrl::fromLocalFile(fileName));
+ QStringList arguments = qApp->arguments();
+ arguments.removeAt(0);
+ foreach (QString const &argument, arguments) {
+ QFileInfo fileInfo(argument);
+ if (fileInfo.exists()) {
+ QUrl url = QUrl::fromLocalFile(fileInfo.absoluteFilePath());
+ if (fileInfo.suffix().toLower() == QLatin1String("m3u")) {
+ playlist->load(url);
+ } else
+ playlist->addMedia(url);
+ } else {
+ QUrl url(argument);
+ if (url.isValid()) {
+ playlist->addMedia(url);
+ }
+ }
}
}
@@ -266,15 +290,15 @@
setTrackInfo(QString("(%1/%2) %3 - %4")
.arg(playlist->currentIndex()+1)
.arg(playlist->mediaCount())
- .arg(player->metaData(QtMediaServices::AlbumArtist).toString())
- .arg(player->metaData(QtMediaServices::Title).toString()));
+ .arg(player->metaData(QtMultimedia::AlbumArtist).toString())
+ .arg(player->metaData(QtMultimedia::Title).toString()));
if (!player->isVideoAvailable()) {
- QUrl uri = player->metaData(QtMediaServices::CoverArtUrlLarge).value<QUrl>();
+ QUrl uri = player->metaData(QtMultimedia::CoverArtUrlLarge).value<QUrl>();
QPixmap pixmap = NULL;
- if (uri.isEmpty()) {
- QVariant picture = player->extendedMetaData("attachedpicture");
+ if (uri.isEmpty()) {
+ QVariant picture = player->metaData(QtMultimedia::CoverArtImage);
// Load picture from metadata
if (!picture.isNull() && picture.canConvert<QByteArray>())
pixmap.loadFromData(picture.value<QByteArray>());
@@ -300,20 +324,22 @@
// Load picture from file pointed by uri
} else
pixmap.load(uri.toString());
-
+
coverLabel->setPixmap((!pixmap.isNull())?pixmap:QPixmap());
+ coverLabel->setAlignment(Qt::AlignCenter);
+ coverLabel->setScaledContents(true);
}
hideOrShowCoverArt();
}
#else
- //qDebug() << "update metadata" << player->metaData(QtMediaServices::Title).toString();
+ //qDebug() << "update metadata" << player->metaData(QtMultimedia::Title).toString();
if (player->isMetaDataAvailable()) {
setTrackInfo(QString("%1 - %2")
- .arg(player->metaData(QtMediaServices::AlbumArtist).toString())
- .arg(player->metaData(QtMediaServices::Title).toString()));
+ .arg(player->metaData(QtMultimedia::AlbumArtist).toString())
+ .arg(player->metaData(QtMultimedia::Title).toString()));
if (coverLabel) {
- QUrl url = player->metaData(QtMediaServices::CoverArtUrlLarge).value<QUrl>();
+ QUrl url = player->metaData(QtMultimedia::CoverArtUrlLarge).value<QUrl>();
coverLabel->setPixmap(!url.isEmpty()
? QPixmap(url.toString())