iOS視頻播放AVPlayer的視頻內容拉伸設置

在iOS開發(fā)中遇到使用視頻播放器的案例,使用的是別人封裝好的?WMPlayer?這么一個視頻播放器,他使用的是AVPlayer這個底層的視頻框架來搭建的視頻界面,在開發(fā)時會遇到適配適配內容比例的需求,一開始沒注意到視頻被拉伸過,后來遇到一個用豎屏錄制的視頻時才發(fā)現(xiàn)視頻被拉伸了,于是來查找相關的設置屬性。

最后查找到使用其中一個叫?videoGravity?的屬性,默認設置了AVLayerVideoGravityResize,查看該屬性以及相關的其他屬性值發(fā)現(xiàn)有3種值可以設置,

AVLayerVideoGravityResizeAspect

AVLayerVideoGravityResizeAspectFill

AVLayerVideoGravityResize

逐一試用后發(fā)現(xiàn)了其中的一些不同,在這里分享一下,可能我說的不太標準,只是個人的一些理解。

開始把描述放到百度翻譯上去翻譯了一下,

1.Preserve aspect ratio; fit within layer bounds

2.Preserve aspect ratio; fill layer bounds

3.Stretch to fill layer bounds

解釋是

1.保持縱橫比;適合層范圍內

2.保持縱橫比;填充層邊界

3.拉伸填充層邊界

再看我分別設置了?WMPlayer這個播放器中的3種不同屬性值得結果圖,

1. wmPlayer.playerLayer.videoGravity?=AVLayerVideoGravityResizeAspect

2.wmPlayer.playerLayer.videoGravity?=?AVLayerVideoGravityResizeAspectFill

3.?wmPlayer.playerLayer.videoGravity?=?AVLayerVideoGravityResize


AVLayerVideoGravityResizeAspect


AVLayerVideoGravityResizeAspectFill
AVLayerVideoGravityResize

可以看出

第1種模式AVLayerVideoGravityResizeAspect是按原視頻比例顯示,是豎屏的就顯示出豎屏的,兩邊留黑;

第2種AVLayerVideoGravityResizeAspectFill是以原比例拉伸視頻,直到兩邊屏幕都占滿,但視頻內容有部分就被切割了;

第3種AVLayerVideoGravityResize是拉伸視頻內容達到邊框占滿,但不按原比例拉伸,這里明顯可以看出寬度被拉伸了。


原文地址:https://blog.csdn.net/COOL_BEAR_XX/article/details/52816780

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容