我目前正在使用AVPlayer框架開發流媒體內容的視頻播放器。 我偶然發現AVPlayerLayer的VideoGravity String-Property可以讓玩家將Scaling/Resizing Mode設置爲不同的值。設置AVPlayerLayer VideoGravity在模擬器上工作,而不是在iPad上
爲用戶提供從默認的播放器稱爲縮放的功能,我已經設置了將執行以下代碼的方法:
AVPlayerLayer *layer = (AVPlayerLayer *)[self.videoContainer layer];
if([layer.videoGravity isEqualToString:AVLayerVideoGravityResizeAspect])
layer.videoGravity = AVLayerVideoGravityResizeAspectFill;
else
layer.videoGravity = AVLayerVideoGravityResizeAspect;
這工作得很好的模擬器,但不知何故,我的iPad 2沒有安裝iOS 5.0.1。
有沒有人遇到類似的問題?這是一個已知的5.0.0的iOS Bug嗎?用AVPlayerLayer實現縮放/調整大小有更好的方法嗎?
任何想法/提示/幫助和建議是大爲讚賞,
謝謝,
山姆
當你說它不適用於真實的設備時,究竟發生了什麼?沒有什麼或其他意外的行爲? – reddersky 2012-03-23 11:10:32
不幸的是沒有(可見)發生......如果我NSLog(layer.videoGravity)「正確的」VideoGravity字符串返回。它也接受它的變化,但它並沒有真正調整電影內容的大小...... – samsam 2012-03-23 13:27:01
我可能會在這裏叫出錯誤的樹,但爲什麼你將videoGravity設置爲一個常量名稱的字符串,而不僅僅是設置它不斷自我?如上所述, – reddersky 2012-03-23 17:57:03