国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - iOS AVPlayer切換播放源實現連續播放和全屏切換的方法

iOS AVPlayer切換播放源實現連續播放和全屏切換的方法

2021-03-17 15:58雪_晟 IOS

這篇文章主要給大家介紹了關于iOS中AVPlayer切換播放源實現連續播放和全屏切換的方法,文中給出了詳細的示例代碼供大家參考學習,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

本文主要給大家介紹了關于ios avplayer切換播放源實現連續播放和全屏切換的相關內容,分享出來供大家參考學習,下面來一起看看詳細的介紹:

avplayer 切換播放源有三種方式:

第一種:采用系統自帶的方法: [self.player replacecurrentitemwithplayeritem:item] ,但是在切換playitem前要把所有的通知,觀察者移除,切換后重新添加。

iOS AVPlayer切換播放源實現連續播放和全屏切換的方法

第二種:把通知,觀察者全部移除,player 置為nil,然后重新創建。

iOS AVPlayer切換播放源實現連續播放和全屏切換的方法

githup上zfplayer 作者表示在ios9后,avplayer的replacecurrentitemwithplayeritem方法在切換視頻時底層會調用信號量等待然后導致當前線程卡頓,如果在uitableviewcell中切換視頻播放使用這個方法,會導致當前線程凍結幾秒鐘。遇到這個坑還真不好在系統層面對它做什么,后來找到的解決方法是在每次需要切換視頻時,需重新創建avplayer和avplayeritem。

因為視頻較小,所以我沒有測試,這兩種方法暫時都可以使用。

第三種可以使用avqueueplayer播放多個items,avqueueplayer是avplayer的子類,可以用一個數組來初始化一個avqueueplayer對象。

代碼如下:

?
1
nsarray*items = <#an array of player items#>;avqueueplayer*queueplayer = [[avqueueplayeralloc] initwithitems:items];

和avplayer一樣,直接調用play方法來播放,queue player順序播放隊列中的item,如果想要跳過一個item,播放下一個item,可以調用方法advancetonextitem。

可以對隊列進行插入和刪除操作,調用方法insertitem:afteritem: , removeitem: , 和removeallitems。正常情況下當插入一個item之前,應該檢查是否可以插入,通過使用caninsertitem:afteritem:方法,第二個參數傳nil

親測第一種第二種沒有問題,第三種當然也可以實現連續播放,后續再研究。

看到zfplayer 的流暢性,就又使用了zfplayer作者使用的通知重新簡單封了一遍,連播代碼。

iOS AVPlayer切換播放源實現連續播放和全屏切換的方法

連播 的邏輯無非就是重置layer 和子控件位置,然后重新設置一遍。

關于橫豎屏切換的代碼:

iOS AVPlayer切換播放源實現連續播放和全屏切換的方法

沒有做封裝,可以封裝個方法,傳入當前的oriention,然后很霸道的實現橫豎屏切換,demo 是用純代碼寫的,還用了懶加載,這在橫豎屏切換的時候有很大的弊端,因為懶加載的緣故,frame已經確定,切換橫豎屏的時候不得已在layoutsubviews里把布局代碼重新寫一遍,這時候就是masonry 布局的好處了。(masonry 要更新到最新,要不然ios10 會崩潰,莫名其妙),還有就是返回的時候要再次調用這個方法設置為豎屏。實現橫豎屏的前提是當前viewcontroller的- (uiinterfaceorientationmask)supportedinterfaceorientations 必須支持橫豎屏。

如果不想強制橫屏,只是在用戶旋轉手機的時候,更換布局,也可以使用下面的通知。

iOS AVPlayer切換播放源實現連續播放和全屏切換的方法

還有個問題是循環引用的問題:當我們聲明一個非屬性的實例變量時,在自己寫的block里會造成循環引用,導致當前view無法釋放。

demo

地址:lxavplayerdemo

總結

以上就是這篇文章的全部內容了,新人一枚,沒有做良好的封裝,只是研究了一些思路。希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.jianshu.com/p/789973b425bc

延伸 · 閱讀

精彩推薦
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111312021-03-15
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
主站蜘蛛池模板: 国产午夜精品久久久久久久 | 91在线观看| 中文字幕国产一区 | 国产v日产∨综合v精品视频 | 欧美视频在线观看免费 | 成人av网页| www.国产视频 | 久久精品免费观看 | 午夜成人免费视频 | 黄色电影免费在线观看 | av看片 | 真实国产露脸乱 | 国产精品高潮呻吟久久av野狼 | 99pao成人国产永久免费视频 | 狠狠人人 | 玖玖在线 | 国产成人免费 | 欧美a在线 | 精品亚洲国产成av人片传媒 | 国内精品久久久久 | 成人精品久久 | 久草成人| 精品国产乱码久久久久久影片 | 国产精品久久久久无码av | 伊人91视频 | 在线成人免费电影 | 国产精品日产欧美久久久久 | 国产一区二区三区 | 国产精品一区二区三区四区 | 视频一区二区在线观看 | 国产在线观看一区 | 精品美女久久久 | 国产一区 | 亚洲香蕉视频 | 在线精品一区 | 高清视频一区 | 天天干夜操 | 日韩电影网站 | 欧美午夜精品久久久 | 国产在线精品一区二区三区 | 久久久免费少妇高潮毛片 |