AVPlayer не сохраняет AVPlayerItem - PullRequest
2 голосов
/ 07 декабря 2010

Кто-нибудь знает, почему этот код падает где-то в пуле релизов (после вызова 'eject')?В ссылке на класс AVPlayer я увидел, что свойство 'currentItem' НЕ объявлено как 'retain' http://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVPlayer_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40009530-CH1-SW21

Является ли это ошибкой в ​​классе 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 ]

2 голосов
/ 19 января 2011

Обычно я использую это для настройки плеера:

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

    [self.player replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithURL:videoURL]];
0 голосов
/ 09 апреля 2012

Я полагаю, что AVPlayer сохраняет AVPlayerItem в initWithPlayerItem: function, так что вы, возможно, теряете память с вашим AVPlayerItem. «currentItem» является свойством только для чтения и не должно быть «retain», которое предназначено только для доступных для записи свойств.

...