2011-12-12 140 views

回答

16

在iOS5上,您應該在設置videoGravity之後重置圖層邊界。

這爲我工作:

((AVPlayerLayer *)[self layer]).videoGravity = AVLayerVideoGravityResizeAspectFill; 
((AVPlayerLayer *)[self layer]).bounds = ((AVPlayerLayer *)[self layer]).bounds; 

編輯: 「自我」 點,從例子中的物體一PlayerView(UIView的子類) 「把所有在一起」: https://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html

+0

偉大的答案! THK。 –

+0

重置是什麼意思?你在做什麼都沒有。最後一行的兩邊是平等的。正如所料,這對iOS 8沒有影響。 – SpaceDog

3

是你能用miham的建議解決你的問題?我的問題被這個「BoltClock」主持人禁止了,只是想知道這個建議是否適合你,因爲它不適合我。

請,BoltClock,不要刪除我的問題。我認爲要問什麼類型的「自我」對象是合法的。米厄姆表示,這種解決方案對他有效,對我來說這並不起作用,所以我想問一下「自我」可能會給我提供什麼樣的對象應該使用的線索。文檔說重力設置爲AVLayerVideoGravityResizeAspectFill會將視頻剪輯到AVPlayerLayer視圖,但它不會這樣做,我在iOS 4.3.2和iOS 5中對此進行了測試,結果讓miham的答案成爲Soumya Das原始問題的答案,去挖掘(「自我」指向什麼?)。也許你有答案?如果是這樣,請將其發佈到此處,而不要只刪除我的問題。

編輯: 找到解決此問題的方法。 勾選IB中的「剪輯子視圖」複選框,以查看將要添加視頻播放器的圖層。然後,設置AVPlayerLayer對象的AVLayerVideoGravityResizeAspectFill。如果您在IB中沒有視圖,但是您正在以編程方式創建它,請將其clipsToBounds屬性設置爲YES。

相關問題