3

得到这个代码:

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

// nslogs -> 高度:000 宽度 000

这已弃用:

videoSize = [asset naturalSize];

// nslogs -> 高度:360 宽度 480

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

4

2 回答 2

10

解决了:

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

这让我很开心,希望它适用于其他人......

于 2013-01-22T20:25:41.830 回答
0
  1. presentationSizeinAVPlayerItem可以返回CGSizeZero播放器项目未准备好播放的值。文档
  2. 内心很郁闷naturalSize文档AVAsset
  3. 就像你的代码一样,建议使用naturalSizeand preferredTransformin AVAssetTrack
CGSize size = [[[movieAsset tracksWithMediaType:AVMediaTypeVideo] firstObject] naturalSize];
于 2019-10-30T02:13:52.987 回答