diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h | 1 | ||||
-rw-r--r-- | src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm | 16 |
2 files changed, 9 insertions, 8 deletions
diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h index 8c0db289a..58a2d84c9 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h @@ -103,6 +103,7 @@ public Q_SLOTS: void processEOS(); void processLoadStateChange(); void processPositionChange(); + void processMediaLoadError(); void processCurrentItemChanged(); diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm index 83042ce96..7af6f4394 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm @@ -283,7 +283,7 @@ static void *AVFMediaPlayerSessionObserverCurrentItemObservationContext = &AVFMe -(void) assetFailedToPrepareForPlayback:(NSError *)error { Q_UNUSED(error) - //TODO: Let the session know that the assest failed to prepare for playback + QMetaObject::invokeMethod(m_session, "processMediaLoadError", Qt::AutoConnection); #ifdef QT_DEBUG_AVF qDebug() << Q_FUNC_INFO; qDebug() << [[error localizedDescription] UTF8String]; @@ -799,13 +799,6 @@ void AVFMediaPlayerSession::processLoadStateChange() [[(AVFMediaPlayerSessionObserver*)m_observer player] setRate:m_rate]; [[(AVFMediaPlayerSessionObserver*)m_observer player] play]; } - - } else { - Q_EMIT error(QMediaPlayer::FormatError, tr("Failed to load media")); - Q_EMIT mediaStatusChanged(m_mediaStatus = QMediaPlayer::InvalidMedia); - Q_EMIT stateChanged(m_state = QMediaPlayer::StoppedState); - - return; } if (newStatus != m_mediaStatus) @@ -817,6 +810,13 @@ void AVFMediaPlayerSession::processPositionChange() Q_EMIT positionChanged(position()); } +void AVFMediaPlayerSession::processMediaLoadError() +{ + Q_EMIT error(QMediaPlayer::FormatError, tr("Failed to load media")); + Q_EMIT mediaStatusChanged(m_mediaStatus = QMediaPlayer::InvalidMedia); + Q_EMIT stateChanged(m_state = QMediaPlayer::StoppedState); +} + void AVFMediaPlayerSession::processCurrentItemChanged() { #ifdef QT_DEBUG_AVF |