summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm')
-rw-r--r--src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
index c0904fddd..2cd61a42e 100644
--- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
+++ b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
@@ -183,6 +183,8 @@ static void *AVFMediaPlayerObserverCurrentItemDurationObservationContext = &AVFM
[m_player release];
m_player = 0;
}
+ if (m_playerLayer)
+ m_playerLayer.player = nil;
#if defined(Q_OS_IOS)
[[AVAudioSession sharedInstance] setActive:NO error:nil];
#endif
@@ -874,6 +876,9 @@ void AVFMediaPlayer::stop()
[[static_cast<AVFMediaPlayerObserver*>(m_observer) player] pause];
setPosition(0);
+ if (m_videoOutput)
+ m_videoOutput->setLayer(nullptr);
+
if (m_mediaStatus == QMediaPlayer::BufferedMedia)
Q_EMIT mediaStatusChanged((m_mediaStatus = QMediaPlayer::LoadedMedia));
@@ -928,6 +933,9 @@ void AVFMediaPlayer::processEOS()
m_mediaStatus = QMediaPlayer::EndOfMedia;
m_state = QMediaPlayer::StoppedState;
+ if (m_videoOutput)
+ m_videoOutput->setLayer(nullptr);
+
Q_EMIT mediaStatusChanged(m_mediaStatus);
Q_EMIT stateChanged(m_state);
}