diff --git a/cocos/ui/UIVideoPlayer-ios.mm b/cocos/ui/UIVideoPlayer-ios.mm index 248f6a285aac..78be859e0d76 100644 --- a/cocos/ui/UIVideoPlayer-ios.mm +++ b/cocos/ui/UIVideoPlayer-ios.mm @@ -110,6 +110,7 @@ -(void) dealloc -(void) clean { + _videoPlayer = nullptr; [self stop]; [self removePlayerEventListener]; [self.playerController.view removeFromSuperview]; @@ -243,7 +244,11 @@ -(void) stop [self seekTo:0]; [self.playerController.player pause]; _state = PlayerbackStopped; - _videoPlayer->onPlayEvent((int)VideoPlayer::EventType::STOPPED); + + // stop() will be invoked in dealloc, which is invoked by _videoPlayer's destructor, + // so do't send the message when _videoPlayer is being deleted. + if (_videoPlayer) + _videoPlayer->onPlayEvent((int)VideoPlayer::EventType::STOPPED); } }