我目前正在使用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/

10-10 14:21