【问题标题】:iOS 6: AVPlayerItem PresentationSize returning zero - (naturalSize method Deprecated on iOS 5)iOS 6:AVPlayerItem PresentationSize 返回零 -(naturalSize 方法在 iOS 5 上已弃用)
【发布时间】:2013-01-06 04:08:22
【问题描述】:
得到这个代码:
videoSize = [[AVPlayerItem playerItemWithAsset:asset] presentationSize];
// nslogs -> 高度:000 宽度000
这已被弃用:
videoSize = [asset naturalSize];
// nslogs -> 高度:360 宽度 480
为什么会这样?没看懂。
【问题讨论】:
标签:
iphone
objective-c
ios6
deprecated
core-video
【解决方案1】:
已解决:
NSArray* allVideoTracks = [movieAsset tracksWithMediaType:AVMediaTypeVideo];
if ([allVideoTracks count] > 0) {
AVAssetTrack* track = [[movieAsset tracksWithMediaType:AVMediaTypeVideo]objectAtIndex:0];
CGSize size = [track naturalSize];
}
这让我很开心,希望它对其他人有用...
【解决方案2】:
- 当玩家物品没有准备好播放时,
AVPlayerItem 中的presentationSize 可能会返回CGSizeZero 的值。doc
-
AVAsset 中的naturalSize 郁闷。 doc
- 就像你的代码一样,建议使用
naturalSize和
preferredTransform 在AVAssetTrack。
CGSize size = [[[movieAsset tracksWithMediaType:AVMediaTypeVideo] firstObject] naturalSize];