2010-12-07 19 views
2

誰かがこのコードがリリースプールのどこかでクラッシュする理由を知っていますか? AVPlayerクラスのリファレンスで、 'currentItem'プロパティが 'retain'として宣言されていないことがわかりました。http://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVPlayer_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40009530-CH1-SW21AVPlayerはAVPlayerItemを保持しません

AVPlayerクラスのバグですか?

ありがとうございます!

- (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]; 
} 

答えて

2

私は通常のセットアップにプレーヤーを、これを使用します。

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

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

ご返信ありがとうございます。私は最終的にプレーヤーのコントローラーを解放する前にスーパービューからプレイヤーコントローラー(AVPlayerを含む)を取り除くことで、クラッシュせずに解放に成功しました。 –

0

私はAVPlayerがinitWithPlayerItemでAVPlayerItemを保持することを信じて:機能、あなたはおそらくあなたAVPlayerItemでメモリをリークしているよう。 "currentItem"はreadonlyプロパティであり、書き込み可能なプロパティに対してのみ保持する必要はありません。

関連する問題