本文講解的是 iOS 視頻播放, 支持本地,在線播放. 進(jìn)度拖動(dòng),精準(zhǔn)跳轉(zhuǎn),獲取視頻的長(zhǎng)度等問題
在共青城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營(yíng)銷,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),共青城網(wǎng)站建設(shè)費(fèi)用合理。
demo 記得點(diǎn)亮 star. 3Q
iOS 視頻播放主要使用的類 AVPlayerItem,AVPlayerLayer,AVPlayer
AVPlayerItem: 提供視頻信息, 利用視頻的 url 創(chuàng)建一個(gè)對(duì)象.利用 kvo 監(jiān)聽 status,可以獲取當(dāng)前視頻的狀態(tài).
AVPlayer: 就類似視頻的控制者. 可以用來控制視頻的播放,暫停,跳轉(zhuǎn)等. 它的創(chuàng)建依賴于AVPlayerItem
AVPlayerLayer: 用于視頻的顯示. 可以理解成一個(gè) view. 它的創(chuàng)建依賴于AVPlayer
簡(jiǎn)單總結(jié): AVPlayer控制視頻狀態(tài), AVPlayerLayer用于顯示,AVPlayerItem提供視頻信息
獲取視頻的長(zhǎng)度 s
視頻精準(zhǔn)跳轉(zhuǎn).拖動(dòng) UISlider,監(jiān)聽 value 改變方法如下:
//為什么timescale要設(shè)置成 600 CMTime教程
實(shí)現(xiàn) iOS開發(fā)webrtc 視頻通話時(shí)錄像,截屏推薦ZEGO即構(gòu)科技,4行代碼,30分鐘在APP、Web和小程序等應(yīng)用內(nèi)實(shí)現(xiàn)視頻通話、語音通話,互動(dòng)直播功能?!军c(diǎn)擊免費(fèi)試用,0成本啟動(dòng)】
實(shí)現(xiàn) iOS開發(fā)webrtc 視頻通話時(shí)錄像,截屏的具體步驟如下:
1.權(quán)限申請(qǐng)。
2.引入 WebRTC 庫(kù)。
3.采集并顯示本地視頻。
4.信令驅(qū)動(dòng)。
5.創(chuàng)建音視頻數(shù)據(jù)通道。
6.媒體協(xié)商。
7.渲染遠(yuǎn)端視頻。
想要了解更多關(guān)于webrtc的相關(guān)信息,推薦咨詢ZEGO即構(gòu)科技。ZEGO即構(gòu)科技自主研發(fā)的高音質(zhì)語音視頻引擎,能夠提供實(shí)時(shí)清晰的多人語音通話獨(dú)立自研的語音前處理模塊(AEC, NS, AGC)能夠提供優(yōu)于同類競(jìng)品的處理效果,支持全帶語音處理。良好的抖動(dòng)緩沖、前向糾錯(cuò)和丟幀補(bǔ)償技術(shù)使引擎適應(yīng)復(fù)雜的網(wǎng)絡(luò)環(huán)境,提供低延時(shí)清晰流暢的語音視頻通話,在較差網(wǎng)絡(luò)環(huán)境中自適應(yīng)的找到延時(shí)與流暢的最佳契合點(diǎn)。
這個(gè)我曾經(jīng)試過自己開發(fā),但弄了很久沒有成功,浪費(fèi)了時(shí)間不說,還總是有bug,后來在別人的建議下使用ZEGO即構(gòu)科技的音視頻SDK就麻溜地開發(fā)好了,通過簡(jiǎn)單的調(diào)用一些API便可搭建視頻聊天場(chǎng)景。
快進(jìn):AVPlayer .rate 1
慢放: 0 AVPlayer .rate 1
快退: AVPlayer .rate 0 (m3u8 不能快退)
MP4:如果快進(jìn)到了緩存不夠的地方:KVC監(jiān)聽 AVPlayerItem .isPlaybackBufferEmpty = yes
快退到頭會(huì)走通知AVPlayerItemDidPlayToEndTimeNotification
m3u8(靜態(tài)):快進(jìn)與MP4格式視頻一致,可以10倍 20倍播放。
m3u8(動(dòng)態(tài)):快進(jìn)到了緩存不夠的地方,會(huì)走通知AVPlayerItemDidPlayToEndTimeNotification。
備注:使用[AVPlayerItem stepByCount:-24];
將AVPlayerItem 向前或向后移動(dòng)指定的步數(shù),正數(shù)前進(jìn),負(fù)數(shù)后退。 每個(gè)步數(shù)的大小取決于AVPlayerItem啟用的AVPlayerItemTracks對(duì)象;
注冊(cè)監(jiān)聽和通知
注冊(cè) AVAudioSession.interruptionNotification 的通知,可以收到播放打斷通知。 系統(tǒng)將此通知發(fā)布到主線程。
其中userinfo有如下字段:
分began與end,用來表示打斷開始與打斷結(jié)束。
只在打斷結(jié)束時(shí)返回。選項(xiàng)用 shouldResume 來指示:另一個(gè)音頻會(huì)話的中斷已結(jié)束,應(yīng)用程序可以恢復(fù)其音頻會(huì)話。
該屬性只在打斷開始時(shí)返回。存在于版本iOS 10.3-14.5。
用于確定這次中斷是否由于系統(tǒng)掛起App所致。
獲取到的是一個(gè)NSNumber表示的Bool。為true表示中斷是由于系統(tǒng)掛起,false是被另一音頻打斷。
該屬性只在打斷開始時(shí)返回。存在于版本iOS 14.5以后,用來代替 AVAudioSessionInterruptionWasSuspendedKey 。
default :因?yàn)榱硪粋€(gè)音頻會(huì)話被激活,音頻中斷。(例如后臺(tái)播著音頻,此時(shí)播放微信語音)
appWasSuspended :由于APP被系統(tǒng)掛起,音頻中斷
builtInMicMuted :音頻因內(nèi)置麥克風(fēng)靜音而中斷(例如iPad智能關(guān)閉套【iPad's Smart Folio】合上)
本文題目:做ios視頻開發(fā),ios視頻直播開發(fā)
本文URL:http://jinyejixie.com/article12/dsdgodc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、做網(wǎng)站、網(wǎng)站排名、手機(jī)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)