Ho una classe PlayerView per visualizzare la riproduzione di AVPlayer. Codice da documentation.Come ottenere il frame video di AVPlayer?
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface PlayerView : UIView
@property (nonatomic) AVPlayer *player;
@end
@implementation PlayerView
+ (Class)layerClass {
return [AVPlayerLayer class];
}
- (AVPlayer*)player {
return [(AVPlayerLayer *)[self layer] player];
}
- (void)setPlayer:(AVPlayer *)player {
[(AVPlayerLayer *)[self layer] setPlayer:player];
}
@end
Ho impostato il mio AVPlayer (contiene asset video con la dimensione 320x240) in questo PlayerView (con frame.size.width = 100, frame.size.height = 100) e il mio video viene ridimensionato. Come posso ottenere la dimensione del video dopo l'aggiunta in PlayerView?
Per me, videoRect restituisce CGRectZero anche se riesco a vedere il video sullo schermo. Sto usando iOS 8 – tettoffensive
in attesa di currentItem.status su == AVPlayerStatusReadyToPlay, e quindi riceverai il frame – YoCoh
Questo non funziona, anche io ho aggiunto KVO per aspettare che lo stato sia AVPlayerStatusReadyToPlay. Il videoRect restituisce ancora tutti gli zeri – codingrhythm