소스 검색

media player: prevent assertion on dealloc

Felix Paul Kühne 11 년 전
부모
커밋
eda8237e60
1개의 변경된 파일4개의 추가작업 그리고 0개의 파일을 삭제
  1. 4 0
      Sources/VLCMediaPlayer.m

+ 4 - 0
Sources/VLCMediaPlayer.m

@@ -226,6 +226,9 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
 
 - (void)dealloc
 {
+    if (libvlc_media_player_get_state(_playerInstance) != libvlc_Stopped)
+        [self stop];
+
     NSAssert(libvlc_media_player_get_state(_playerInstance) == libvlc_Stopped, @"You released the media player before ensuring that it is stopped");
 
     [self unregisterObservers];
@@ -996,6 +999,7 @@ static const VLCMediaPlayerState libvlc_to_local_state[] =
             _privateLibrary = [[VLCLibrary sharedLibrary] retain];
         libvlc_retain([_privateLibrary instance]);
         _playerInstance = libvlc_media_player_new([_privateLibrary instance]);
+        libvlc_media_player_retain(_playerInstance);
 
         [self registerObservers];