无法在屏幕上获取 AVPlayerLayer 中视频的大小
Posted
技术标签:
【中文标题】无法在屏幕上获取 AVPlayerLayer 中视频的大小【英文标题】:Can't get size of the video in AVPlayerLayer on screen 【发布时间】:2012-08-22 10:09:44 【问题描述】:我有一个包含视频播放器 (AVPlayer) 的图层 (AVPlayerLayer) 视图。
我使用来自developer.apple.com 的代码在屏幕上显示视频。
@implementation PlayerView
+ (Class)layerClass
return [AVPlayerLayer class];
- (AVPlayer*)player
return [(AVPlayerLayer *)[self layer] player];
- (void)setPlayer:(AVPlayer *)player
[(AVPlayerLayer *)[self layer] setPlayer:player];
@end
如何在 playerview.frame 中获取视频的大小? 我不能使用 videoGravity 来填充整个视图,因为我需要显示横向和纵向视频。
【问题讨论】:
我不确定您想要哪种尺寸。实际视频大小(视频帧尺寸)?播放器层有视频内容的部分? 我想在 PlayerView 缩放/调整大小后在 AVPlayerLayer 中获取视频帧。不是实际的视频大小。 [自层].frame.size? 它为您提供层大小,但不是该层中调整大小的视频的大小。我找到了答案:***.com/a/12113468/1545158 是的,这行得通:GRect transformBounds = CGRectApplyAffineTransform([avplayerLayer bounds], CATransform3DGetAffineTransform(playerLayer.sublayerTransform)); 【参考方案1】:您可以使用AVPlayerLayer
的videoRect
属性。您可以在documentation 中了解更多信息。
【讨论】:
以上是关于无法在屏幕上获取 AVPlayerLayer 中视频的大小的主要内容,如果未能解决你的问题,请参考以下文章
获取 React-Native sectionlist 中视口中的当前部分