iOS 6:AVPlayerItem PresentationSize返回零 - (在iOS 5上弃用的naturalSize方法)

时间:2013-01-22 19:50:56

标签: iphone objective-c ios6 deprecated core-video

得到这段代码:

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

// nslogs - >身高:000宽000

这个已被弃用:

videoSize = [asset naturalSize];

// nslogs - >身高:360宽480

为什么会这样?我不明白。

2 个答案:

答案 0 :(得分:10)

解决:

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

这是我的一天,希望它适用于其他人...

答案 1 :(得分:0)

  1. 当播放器项目尚未准备就绪时,presentationSize中的AVPlayerItem可能会返回值CGSizeZerodoc
  2. 按下naturalSize中的AVAssetdoc
  3. 就像您的代码一样,建议使用naturalSizepreferredTransform中的AVAssetTrack
CGSize size = [[[movieAsset tracksWithMediaType:AVMediaTypeVideo] firstObject] naturalSize];