У меня есть AVPlayerView, созданный в соответствии с рекомендациями Apple docs: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html
Поэтому я добавляю этот подкласс UIView в качестве подвида моего UIViewController.
Выглядит хорошо, видео воспроизводится хорошо. Однако, когда я сворачиваю представление в маленькое окно, размер видео не изменяется вместе с ним. Это было нормально, когда я использовал MPMoviePlayerViewController, но мне нужно использовать AVPlayer по нескольким причинам [отключение звука, одновременное воспроизведение более одного видео и т. д.].
Вот моя реализация AVPlayerView:
@implementation VideoView {
}
+ (Class)layerClass {
return [AVPlayerLayer class];
}
- (AVPlayer*)player {
return [(AVPlayerLayer *)[self layer] player];
}
- (void)setPlayer:(AVPlayer *)player {
[(AVPlayerLayer *)[self layer] setPlayer:player];
}
@end
Вот как я создаю AVPlayer:
AVAsset *asset = [AVURLAsset URLAssetWithURL:Url options:nil];
AVPlayerItem *anItem = [AVPlayerItem playerItemWithAsset:asset];
player_vc = [AVPlayer playerWithPlayerItem:anItem];
player_vc.actionAtItemEnd = AVPlayerActionAtItemEndNone;
player_layer = [[VideoView alloc] initWithFrame:self.view.bounds];
[self.view addSubview: player_layer];
[player_layer setPlayer:player_vc];
А вот код, который я использую для изменения рамки родительского представления:
-(void) minimize {
[UIView animateWithDuration:2.0
animations:^{
self.view.frame = resizeFrame;
} completion:(void (^)(BOOL)) ^{
self.minimized = true;
}
Кажется, что однажды созданный с определенным фреймом, я не могу изменить его ни на что другое.
Не могли бы вы рассказать мне, как изменить размер слоя AVPlayer с представлением моего контроллера представления?
Спасибо