有時(shí)候我們的App需要一些錄像的功能厌均,那么這個時(shí)候如果我們自己直接調(diào)用系統(tǒng)錄像Api顯得很麻煩汗贫,需要考慮的點(diǎn)多司蔬,難度變大。所以除非是需要特別定制琉用,不然一般情況下使用系統(tǒng)提供給我們的錄像的UIImagePickerController就夠了(當(dāng)然它也可以拍照)堕绩,它是一個封裝了完整視頻捕獲管線和相機(jī) UI 的ViewController。
好了辕羽,接下來進(jìn)入正題逛尚;
1、要錄像首先要檢查一下刁愿,你的設(shè)備是否支持錄像,現(xiàn)在的設(shè)備基本都是支持的到逊,先判斷數(shù)據(jù)輸入源(攝像頭)是否可用铣口,再取的輸入源支持的多媒體格式,最后判斷是否支持錄像觉壶。
2脑题、既然要使用UIImagePickerController錄像,那么肯定需要事先對它進(jìn)行實(shí)例化铜靶,實(shí)例化UIImagePickerController叔遂,設(shè)置輸入源,設(shè)置輸入類型争剿,設(shè)置代理(用于錄制結(jié)束或者錄制取消時(shí)候通知到對應(yīng)的代理)已艰。
3、設(shè)置前后攝像頭蚕苇,既然是錄像哩掺,那么有些需求可能就是需要使用前攝像頭,先判斷前攝像頭是否可用涩笤,設(shè)置的話設(shè)置前攝像頭為UIImagePickerController的錄像設(shè)備嚼吞。
4盒件、和Android的只能系統(tǒng)相機(jī)UI不同,iOS可以自定義相機(jī)UI舱禽,哈哈哈炒刁!UIImagePickerController設(shè)置為不顯示默認(rèn)UI,然后再設(shè)置自定義UI誊稚,最后給自定義UI設(shè)置點(diǎn)擊事件切心,操作方法具體可以從UIImagePickerController的頭文件查看,這里我就只截圖開始和停止錄像方法片吊。
5绽昏、錄像的視頻質(zhì)量,你可以設(shè)置UIImagePickerController的videoQuality屬性俏脊,視頻質(zhì)量描述如上圖所示全谤。
6、錄制結(jié)束后爷贫,處理視頻认然。UIImagePickerController提供了2個代理方法一個是錄制成功的代理方法,拿到錄制的視頻后可以保存到相冊漫萄,或者保存到沙盒里面卷员。一個是用戶取消錄制的代理方法,這個要實(shí)現(xiàn)什么都是要根據(jù)具體需求去實(shí)現(xiàn)腾务。然后2個代理方法都要記得關(guān)掉UIImagePickerController毕骡。UIImagePickerController通過設(shè)置基本上可以滿足需求,如果無法滿足需求的話可以考慮直接調(diào)用更加底層的相機(jī)API岩瘦。
如果你覺得我的這篇文章對你有一丁點(diǎn)兒作用的話未巫,那么希望你能在下方給個贊哈,讓我知道這文章已經(jīng)起了它應(yīng)該的作用启昧,謝謝!
參考資料 http://objccn.io/issue-23-1/