2010-12-07 5 views
2

누군가이 코드가 릴리스 풀의 어딘가에서 충돌하는 이유를 알고 있습니까 ('꺼내기'가 호출 된 후)? 은 내가 'currentItem'속성이 http://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVPlayer_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40009530-CH1-SW21AVPlayer는 AVPlayerItem을 보유하지 않습니다

는 AVPlayer를 클래스의 버그인가, 아니면 내가 다른 곳에 잘 보관해야한다 '유지'로 선언되지 않았는지 AVPlayer를 클래스 참조에서 본?

감사합니다! 당신이 가능하게 당신의 AVPlayerItem와 메모리가 누수되어 그 기능을 :

if (!self.player) { 
    player = [[AVPlayer alloc] init]; 
    } 

    [self.player replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithURL:videoURL]]; 

답변

2

나는 일반적으로 설치에 플레이어를 사용합니다. "currentItem"은 읽기 전용 속성이므로 쓰기 가능한 속성에 대해서만 "보유"하지 않아야합니다.

+0

답장을 보내 주셔서 감사합니다. 마지막으로 플레이어 컨트롤러 자체를 릴리스하기 전에 수퍼 뷰에서 플레이어 컨트롤러 (AVPlayer 포함)를 제거하여 충돌없이 해제하는 데 성공했습니다. –

0

내가 AVPlayer를가 initWithPlayerItem에 AVPlayerItem을 유지하고 있다고 생각 :

- (void) viewDidLoad { 
    NSURL *url = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"]; 
    playerItem = [[AVPlayerItem alloc] initWithURL:url]; 
    player = [[AVPlayer alloc] initWithPlayerItem:playerItem]; 
} 

- (IBAction) eject { 
    [player release]; 
    [playerItem release]; 
}