Player::Player(QWidget *parent) : QWidget(parent) , videoWidget(0) , coverLabel(0) , slider(0) , audioEndpointSelector(0) #ifdef Q_OS_SYMBIAN // , mediaKeysObserver(0) , playlistDialog(0) , toggleAspectRatio(0) , showYoutubeDialog(0) , youtubeDialog(0) #else , colorDialog(0) #endif { player = new QMediaPlayer(this); // owned by PlaylistModel playlist = new QMediaPlaylist(); player->setPlaylist(playlist); connect(player, SIGNAL(durationChanged(qint64)), SLOT(durationChanged(qint64))); connect(player, SIGNAL(positionChanged(qint64)), SLOT(positionChanged(qint64))); connect(player, SIGNAL(metaDataChanged()), SLOT(metaDataChanged())); connect(playlist, SIGNAL(currentIndexChanged(int)), SLOT(playlistPositionChanged(int))); connect(player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(statusChanged(QMediaPlayer::MediaStatus))); connect(player, SIGNAL(bufferStatusChanged(int)), this, SLOT(bufferingProgress(int))); connect(player, SIGNAL(error(QMediaPlayer::Error)), this, SLOT(displayErrorMessage())); videoWidget = new VideoWidget(this); player->setVideoOutput(videoWidget); playlistModel = new PlaylistModel(this); playlistModel->setPlaylist(playlist); playlistView = new QListView(this); playlistView->setModel(playlistModel); playlistView->setCurrentIndex(playlistModel->index(playlist->currentIndex(), 0)); connect(playlistView, SIGNAL(activated(QModelIndex)), this, SLOT(jump(QModelIndex))); slider = new QSlider(Qt::Horizontal, this); slider->setRange(0, player->duration() / 1000); connect(slider, SIGNAL(sliderMoved(int)), this, SLOT(seek(int))); 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); } } }
void QCameraImageProcessingPrivate::initControls() { imageControl = 0; QMediaService *service = camera->service(); if (service) imageControl = qobject_cast<QCameraImageProcessingControl *>(service->requestControl(QCameraImageProcessingControl_iid)); }
/*! \internal If \a mediaObject is null or doesn't have an intrinsic playlist, internal local memory playlist source will be created. */ bool QMediaPlaylist::setMediaObject(QMediaObject *mediaObject) { Q_D(QMediaPlaylist); if (mediaObject && mediaObject == d->mediaObject) return true; QMediaService *service = mediaObject ? mediaObject->service() : 0; QMediaPlaylistControl *newControl = 0; if (service) newControl = qobject_cast<QMediaPlaylistControl*>(service->requestControl(QMediaPlaylistControl_iid)); if (!newControl) newControl = d->networkPlaylistControl; if (d->control != newControl) { int oldSize = 0; if (d->control) { QMediaPlaylistProvider *playlist = d->control->playlistProvider(); oldSize = playlist->mediaCount(); disconnect(playlist, SIGNAL(loadFailed(QMediaPlaylist::Error,QString)), this, SLOT(_q_loadFailed(QMediaPlaylist::Error,QString))); disconnect(playlist, SIGNAL(mediaChanged(int,int)), this, SIGNAL(mediaChanged(int,int))); disconnect(playlist, SIGNAL(mediaAboutToBeInserted(int,int)), this, SIGNAL(mediaAboutToBeInserted(int,int))); disconnect(playlist, SIGNAL(mediaInserted(int,int)), this, SIGNAL(mediaInserted(int,int))); disconnect(playlist, SIGNAL(mediaAboutToBeRemoved(int,int)), this, SIGNAL(mediaAboutToBeRemoved(int,int))); disconnect(playlist, SIGNAL(mediaRemoved(int,int)), this, SIGNAL(mediaRemoved(int,int))); disconnect(playlist, SIGNAL(loaded()), this, SIGNAL(loaded())); disconnect(d->control, SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode)), this, SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode))); disconnect(d->control, SIGNAL(currentIndexChanged(int)), this, SIGNAL(currentIndexChanged(int))); disconnect(d->control, SIGNAL(currentMediaChanged(QMediaContent)), this, SIGNAL(currentMediaChanged(QMediaContent))); if (d->mediaObject) d->mediaObject->service()->releaseControl(d->control); }
void ARCameraQml::setMediaObject(QMediaObject* mediaObject) { if (mediaObject != _mediaObject) { QMediaService* service = mediaObject->service(); if (service) { QVideoRendererControl* rendererControl = dynamic_cast<QVideoRendererControl*>( service->requestControl(QVideoRendererControl_iid)); if (rendererControl) { rendererControl->setSurface(&_surface); //updateOrientation(); _mediaObject = mediaObject; emit mediaObjectChanged(); return; } } } qDebug() << Q_FUNC_INFO << ": Failed to set media object"; }
void QCameraFocusPrivate::initControls() { Q_Q(QCameraFocus); focusControl = 0; QMediaService *service = camera->service(); if (service) focusControl = qobject_cast<QCameraFocusControl *>(service->requestControl(QCameraFocusControl_iid)); if (focusControl) { q->connect(focusControl, SIGNAL(opticalZoomChanged(qreal)), q, SIGNAL(opticalZoomChanged(qreal))); q->connect(focusControl, SIGNAL(digitalZoomChanged(qreal)), q, SIGNAL(digitalZoomChanged(qreal))); q->connect(focusControl, SIGNAL(maximumOpticalZoomChanged(qreal)), q, SIGNAL(maximumOpticalZoomChanged(qreal))); q->connect(focusControl, SIGNAL(maximumDigitalZoomChanged(qreal)), q, SIGNAL(maximumDigitalZoomChanged(qreal))); q->connect(focusControl, SIGNAL(focusZonesChanged()), q, SIGNAL(focusZonesChanged())); } }
void QDeclarativeCamera::setupDevice(const QString &deviceName) { QMediaService *service = m_camera->service(); if (!service) return; QVideoDeviceSelectorControl *deviceControl = qobject_cast<QVideoDeviceSelectorControl*>(service->requestControl(QVideoDeviceSelectorControl_iid)); if (!deviceControl) return; int deviceIndex = -1; if (deviceName.isEmpty()) { deviceIndex = deviceControl->defaultDevice(); } else { for (int i = 0; i < deviceControl->deviceCount(); ++i) { if (deviceControl->deviceName(i) == deviceName) { deviceIndex = i; break; } } } if (deviceIndex == -1) return; State previousState = cameraState(); setCameraState(UnloadedState); deviceControl->setSelectedDevice(deviceIndex); QCameraInfo oldCameraInfo = m_currentCameraInfo; m_currentCameraInfo = QCameraInfo(*m_camera); emit deviceIdChanged(); if (oldCameraInfo.description() != m_currentCameraInfo.description()) emit displayNameChanged(); if (oldCameraInfo.position() != m_currentCameraInfo.position()) emit positionChanged(); if (oldCameraInfo.orientation() != m_currentCameraInfo.orientation()) emit orientationChanged(); setCameraState(previousState); }