Domanda

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.

È stato utile?

Soluzione

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...

Altri suggerimenti

  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];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top