我目前正在使用AVPlayer框架开发用于流式内容的视频播放器。
我偶然发现了AVPlayerLayer的VideoGravity字符串属性,该属性使我可以将播放器的“缩放/调整大小模式”设置为不同的值。
为了向用户提供默认播放器已知的缩放功能,我设置了一种方法,该方法将执行以下代码:
AVPlayerLayer *layer = (AVPlayerLayer *)[self.videoContainer layer];
if([layer.videoGravity isEqualToString:AVLayerVideoGravityResizeAspect])
layer.videoGravity = AVLayerVideoGravityResizeAspectFill;
else
layer.videoGravity = AVLayerVideoGravityResizeAspect;
这在Simulator中效果很好,但在安装了iOS 5.0.1的iPad 2上不知何故。
有没有人遇到过类似的问题?这是5.0.1的已知iOS错误吗?是否有更好的方法来实现使用AVPlayerLayer缩放/调整大小?
非常感谢任何想法/技巧/帮助和建议,谢谢,山姆
最佳答案
设置边界将在内部setNeedsLayout
。如果仅更改重力,则必须将此称为自己。尽管我想象AVPlayerLayer如此频繁地更新图层内容以至于无关紧要,但调用setNeedsDisplay
强制重新绘制也不会受到损害。
编辑:您的名字是我的两倍!
关于objective-c - 设置AVPlayerLayer VideoGravity可以在Simulator上使用,而不能在iPad上使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9836766/