Question

Got this code:

videoSize = [[AVPlayerItem playerItemWithAsset:asset] presentationSize]; 

// nslogs -> height: 000 width 000

And this deprecated:

videoSize = [asset naturalSize];

// nslogs -> height: 360 width 480

Why is this happening? I don't get it.

Était-ce utile?

La solution

Solved:

NSArray* allVideoTracks = [movieAsset tracksWithMediaType:AVMediaTypeVideo];
if ([allVideoTracks count] > 0) {
AVAssetTrack* track = [[movieAsset tracksWithMediaType:AVMediaTypeVideo]objectAtIndex:0];
CGSize size = [track naturalSize];
}

this made my day, hope it works for someone else...

Autres conseils

  1. The presentationSize in AVPlayerItem may return a value of CGSizeZero when the player item is not ready to paly.doc
  2. The naturalSize in AVAsset is depressed. doc
  3. Just like your code, it is recommended to use naturalSize and preferredTransform in AVAssetTrack.
CGSize size = [[[movieAsset tracksWithMediaType:AVMediaTypeVideo] firstObject] naturalSize];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top