• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    iOS AVFoundation視頻播放探究

    2022-03-31 06:29:42白亞輝
    電子技術與軟件工程 2022年24期
    關鍵詞:界面

    白亞輝

    (中國人民武裝警察部隊河北省總隊 河北省石家莊市 050000)

    我們開發(fā)中很多地方會用到視頻播放功能,對于iOS 平臺視頻播放大致分為兩大類:使用蘋果的官方API 實現(xiàn)視頻播放功能。(AVKit,AVFoundation)和使用集成ffmpeg 框架的第三方庫。(ijkplayer,kxmovie 等)。本文現(xiàn)只針對第一種方式做簡單的探究。

    播放一段本地的視頻我們貌似可以通過以下幾種方法實現(xiàn)。一是通過在APP 中嵌套WebView(UIWebView,WKWebView)加載Html5 標簽Video 來實現(xiàn)視頻播放的功能。二是通過AVKit 框架實現(xiàn)視頻播放。三是通過底層AVFoundation 框架實現(xiàn)視頻播放。實際上,無論哪種方式歸根結底仍然離不開底層AVFoundation 的身影。

    1 Html5 video標簽播放視頻

    特殊說明:基于mediaPlayer 類庫的MPMediaPlayer Controller(iOS9 后遭到廢棄,被AVPlayerViewController所替代)iOS8 之后蘋果推薦使用WKWebView 替代UIWebView,其主要的優(yōu)點有:

    (1)WKWebView 更多的支持HTML5 的特性;

    (2)WKWebView 更快,占用內(nèi)存可能只有UIWebView的1/3 ~ 1/4;

    (3)WKWebView 高達60fps 的滾動刷新率和豐富的內(nèi)置手勢;

    (4)WKWebView 具有Safari 相同的JavaScript 引擎;

    (5)WKWebView 增加了加載進度屬性將;

    (6)UIWebViewDelegate 和UIWebView 重構成了14個類與3 個協(xié)議。

    1.1 使用方式

    通過webView 嵌套html 的video 標簽實現(xiàn)視頻播放,如下:

    需要我們做的只是簡單的在我們的視圖中添加UIWebView(WKWebView)然后調(diào)用加載方法去加載html 文件即可。代碼如下:

    webView = WKWebView(frame:self.view.frame);

    let path = Bundle.main.path(forResource:"movieHtml",ofType:"html");

    let request = URLRequest.init(url:URL(fileURLWithPath:path!)) webView?.load(request);

    self.view .addSubview(webView!);

    該例當中加載了一個本地html 文件播放本地視頻文件,實際當中也可以加載自己服務器端的html 文件播放服務端視頻文件。

    1.2 原理分析

    首先我們要了解一個概念WebKit,WebKit 是一個開源的瀏覽器引擎,我們在瀏覽器中能夠看到各種各樣的網(wǎng)頁就是因為WebKit 幫助我們解析html 代碼呈現(xiàn)給我們。很多瀏覽器包括safar,Chrome 就是一款基于WebKit 的瀏覽器,在我們的app 中無論原有的UIWebView 還是現(xiàn)有的WKWebView 其內(nèi)核也是基于WebKit 的。有一點我們應當知道,由于各個平臺軟硬件的不同,不同平臺下WebKit 也有不同的WebKit port。下面是不同WebKit por 的異同:

    WebKit port 共同之處:

    (1)DOM、winow、document;

    (2)CSS 對象模型;

    (3)CSS 解析,鍵盤事件處理;

    (4)HTML 解析和DOM 構建;

    (5)所有的布局和定位;

    (6)Chrome 開發(fā)工具和WebKit 檢查器的UI 與檢查器;

    (7)contenteditable、pushState、文件API、大多數(shù)SVG、CSS Transform math、Web Audio API、localStorage 等功能;

    (8)很多其他功能與特性。

    WebKit port 不同之處:

    (1)GPU 相關技術;

    (2)3D 轉(zhuǎn)換;

    (3)WebGL;

    (4)視頻解碼;

    (5)將2D 圖像繪制到屏幕;

    (6)解析方式;

    (7)SVG 和CSS 漸變繪制;

    (8)文字繪制和斷字;

    (9)網(wǎng)絡層(SPDY、預渲染、WebSocket 傳輸);

    (10)JavaScript 引擎;

    (11)JavaScriptCore 在WebKit repo 中。V8 和JavaScript Core 被綁定在WebKit 中;

    (12)表單控制器的渲染;

    (13)

    (14)圖像解碼;

    (15)頁面導航 前進/后退;

    (16)pushState()的導航部分;

    (17)SSL 功能,比如Strict Transport Security 和Public Key Pins。

    從上面可以得知WebKit 在不同平臺下其

    通過instrument 可以大致了解其調(diào)用堆棧情況,如圖1,可以看到其實質(zhì)上最后還是調(diào)用了AVKit 框架下的AVplayerViewController 來實現(xiàn)視頻的播放。綜上,這種用html 方式播放視頻其實本質(zhì)上是通過webview 內(nèi)核WebKit實現(xiàn)的視頻標簽video 解析然后傳遞到底層去進行視頻播放,這種播放過程交給AVKit 框架來實現(xiàn)。

    圖1:AVKit 框架

    2 AVKit播放視頻

    關于AVKit 蘋果官方給的解釋是“Create view-level services for media playback,complete with user controls,chapter navigation,and support for subtitles and closed captioning.The AVKit framework provides a high-level interface for playing video content.”大致意思為:為媒體播放創(chuàng)建視圖層級的服務,包括用戶控制,章節(jié)導航,并且支持副標題,隱藏字幕。AVKit framework 為播放視頻能容提供了一個高級的接口。

    AVKit 框架是Apple 為我們提供的一個視頻播放高級框架,iOS8 以后可以使用,基于AVFoundation 實現(xiàn)。AVKit高度封裝,可以簡化我們的播放視頻的過程,當然也會帶來一些的弊端,一些高度定制化的功能通過AVKit 無法實現(xiàn),例如視頻編輯等。

    那么AVKit 為我們提供了哪些類,這些類能幫助我們做什么呢?通過查看其引用關系我們應該能大致了解其功能。如iOS 中的AVKit 框架引用關系如圖2(iOS 10.3 其中帶小旗子的部分為@class 引入方式)。

    圖2:AVKit 框架引用關系

    可以看到AVKit 框架下涉及到的類并不多。主要的只有兩個AVPictureInPictureController 和AVPlayerViewController,其中AVPictureInPictureController 用于畫中畫的相關實現(xiàn)。AVPlayerViewController 用于視頻播放,AVPlayerView Controller 為我們提供了一個帶簡單操作條的視頻界面。

    2.1 使用方法

    通過播放一段本地視頻的方法如下:

    let path = Bundle.main.path(forResource:"movie",ofType:"mp4");

    let player = AVPlayer.init(url:URL.init(fileURLWithPath:path!)) ;

    let playerVC = BAVPlayerViewController();playerVC.player = player;

    self.present(playerVC,animated:true) { };

    其中BAVPlayerViewController 繼承自AVPlayerView Controller 之所以這樣做是因為后面我們會在這個類中做一些視頻控制界面的改變(這些改變必須在視圖加載后,比如contentOverlayView 要在viewDidLoad 之后才能獲取到)。如果不想做任何修改直接用AVPlayerViewController 即可。

    在iphone 與iPad 上運行會有些許不同,ipad 上比iPhone上右下角會多處一個畫中畫的操作按鈕。點擊后可進入畫中畫模式。畫中畫模式是iOS9 添加的一個功能,可以通過AVPlayerViewController 的allowsPictureInPicturePlayback 屬性進行控制,默認為true。

    2.2 修改視頻界面

    可以看到AVPlayerViewController 為我們提供的播放界面并不是那么美觀。在實際應用也很可能會與我們設計的app 主題不符,影響用戶體驗。所以通常情況下我們會對播放界面做相應的修改。修改之前我們先了解下下AVPlayerViewController 的幾個重要屬性。

    (1)player:用戶播放視頻的主要控件。需要初始化后丟入到AVPlayerViewController。

    (2)showsPlaybackControls:用于控制是否顯示系統(tǒng)默認的控制條。

    (3)videoGravity:定義了視頻應該怎樣在AVPlayer Layer 中顯示的字符串,包括AVLayerVideoGravityResize Aspect( 默認)、AVLayerVideoGravityResizeAspectFill、AVLayerVideoGravityResize 三種。

    (4)contentOverlayView :一個處于控制視圖和視頻視圖中間的view,用來添加額外定義的視圖。

    (5)allowsPictureInPicturePlayback:是否允許畫中畫模式。

    我們可能會有一個思路是通過隱藏系統(tǒng)的控制條,然后在contentOverlayView 添加自己的視圖來自定義控制條。事實上這樣可能并不能很好的解決我們的問題。contentOverlayView 可以顯示我們需要添加的控件,但是它并不能響應事件。通常這種情況會有下面幾種可能:

    (1)view 本身設置isUserInteractionEnabled = false;

    (2)view 父控件設置isUserInteractionEnabled = false;

    (3)view 前方有其他控件遮擋。

    所以我們設置self.contentOverlayView?.isUserInteraction Enabled = true;self.contentOverlayView?.superview?.isUser InteractionEnabled = true;驗證后仍然無妨響應事件。為了驗證遮蓋問題我們有必要了解下播放視頻時的view 層次圖,如圖3(基于iOS10.3)。

    圖3:View 層次圖

    從圖3 中可以看到我們使用的contentOverlayView 前面確實會存在兩個view,一個AVTouchIgnoringView 從字面意思理解不處理觸摸事件的view(透明的UIView),也就是這個view 會將事件傳遞的其后面的view(根據(jù)進度條view可以響應事件也可以推斷AVTouchIgnoringView 并不會攔截我們的事件)。另一個用于顯示系統(tǒng)進度條的UIView,這個view 可以響應用戶事件,我們contentOverlayView 無法響應事件應該是這個view 響應了用戶事件,導致響應鏈無法向下傳遞,也就無法傳遞到后面的contentOverlayView。那么我們是不是可以在這個view 上做一些自定義控件呢,很遺憾我們并不能get 到這個view。使用 playerViewController.view.subviews[0].subviews[0].subviews[1]這種方式獲取某個view 并不是很好的方式,因為隨著sdk 的更新這個層次機構并不能保證會一成不變。

    我們雖然無法使用contentOverlayView 達到我們想要的效果,但是contentOverlayView 并不是一個毫無用處的view。實際中我們?nèi)匀荒苡盟尸F(xiàn)一些無需與用戶交互的界面。比如直播過程的字幕,送禮禮物動畫等(暫且不論其好壞),我們再回頭品味Apple 對contentOverlayView 解讀:“Use the content overlay view to add additional custom views between the video content and the controls.”其中between the video content and the controls,或許蘋果也不并希望我們將控制放到contentOverlayView 當中。

    修改界面的另一個思路:在我們AVPlayerViewController初始化的過程中,系統(tǒng)會為我們創(chuàng)建了一個AVPlayerView,然后將這個view 添加到self.view 當中。如果我們無法在AVPlayerView 當中去修改界面,那么我們只能在AVPlayerView 上面在添加一個控制層了。當然這樣這個控制層就遮蓋了原來的控制層view,其上的雙擊放大,單擊隱藏進度條功能就會消失。這一部分得靠自己去實現(xiàn)了。

    事實上AVPlayerView 是蘋果為我們封裝的一個播放界面,我們完全可以不用AVPlayerView,去實現(xiàn)自定義界面,這就更接近底層了,我們會在AVFoundation 播放視頻時介紹。

    在我們自定義界面的時候不免會設計到對視頻的控制,比如暫停、開始、跳轉(zhuǎn)。或是一些視頻數(shù)據(jù)的現(xiàn)實問題,這些一般通過AVPlayerViewController 為我們提供player 可以做到。

    通過前面的了解,我們知道AVKit 框架播放視頻其事只是做了兩件事:一提供了畫中畫相關功能。二提供一個viewController,自帶并不是很美觀的視頻播放界面。(修改界面可以做到,但實現(xiàn)方式卻比較low)。真正做到視頻播放的其實是AVPlayer,而AVPlayer 是AVFoundation 框架的主要角色之一,所以AVKit 視頻播放其實也是AVFoundation視頻播放過程。

    3 AVFoundation框架播放視頻

    首先看一下蘋果官方網(wǎng)站AVFoundation 的定義如下:AVFoundation is one of several frameworks that you can use to play and create time-based audiovisual media.It provides an Objective-C interface you use to work on a detailed level with time-based audiovisual data.For example,you can use it to examine,create,edit,or reencode media files.You can also get input streams from devices and manipulate video during realtime capture and playback.大致意思為:AVFoundation 是幾款你可以用來播放和創(chuàng)建基于時間視聽媒體的框架之一。它提供了一個用來處理視聽媒體數(shù)據(jù)Objective-C 接口。比如你可以用它來檢查、創(chuàng)建、編輯或著重編碼媒體文件,你也可以用它從設備獲得輸入流,在實時拍攝、播放錄像時操作視頻。AVFoundation 在iOS 中所處的位置如圖4所示。

    圖4:AVFoundation 在iOS 中所處的位置

    可以看出AVFoundation 框架處于一個比較低級(相對UIKit)位置。建立在Core Audio、Core Media 、Core Animation 之上。

    3.1 使用方法

    最簡單的方式只需要

    (1)生成AVplayer;

    (2)生成AVplayerLayer;

    (3)將AVplayerLayer 添加到view 的layer 上;

    (4)AVplayer 調(diào)用play 方法。

    就像下面這樣就像下面這樣

    let vc = UIViewController();

    //player 的初始化可以通過playerItem 生成

    let path = Bundle.main.path(forResource:"movie",ofType:"mp4");

    let player = AVPlayer(url:URL.init(string:path!)!);

    let layer = AVPlayerLayer.init(layer:player);

    vc.view.layer.addSublayer(layer);

    self.present(vc,animated:true) { player.play();}

    3.2 自定義界面可能遇到的問題

    上述這樣就能實現(xiàn)視頻的播放了,但是沒有控制條。這就需要我們自己去實現(xiàn)了。具體細節(jié)不再詳細贅述,實現(xiàn)過程中可能會遇到的問題:問題一:屏幕旋轉(zhuǎn)后視頻界面不能自適應問題。問題二:視頻進度視頻總時間顯示問題。因為layer 不支持autolayout 所以針對問題一比較簡單的方法是:自定義一個view 改變這個view 的classLayer為AVPlayerLayer,讓我們的player 的layer 為該view 的layer。然后我們對這個view 進行autolayout 這樣就能自動適應屏幕了。

    代碼如下:

    關于屏幕旋轉(zhuǎn)的問題在iOS6 以后屏幕旋轉(zhuǎn)做了調(diào)整,尤其是在項目中用到navgationcontrler,tabbarcontroller 時問題會變得比較繁瑣。這里我們不在詳細展開。如果我們的項目中只有一個或者很少界面橫屏顯示視頻,建議采用modal形式顯示viewcontroller。

    3.3 深入理解播放過程

    通過前面關于html5 方式以及AVKit 方式的介紹我們已經(jīng)知道播放過程最終都會給到AVFoundation 層。那么AVFoundation 是怎么樣播放的呢?

    AVFoundation視頻播放功能集中到下面幾個類:AVAsset:用于獲取多媒體的相關信息,包括獲取多媒體的畫面、聲音等信息。AVPlayerItem:媒體資源管理對象,管理視頻的一些基本信息和狀態(tài)。AVPlayer:用于控制視頻的播放暫停快進等。AVPlayerLayer:視頻呈現(xiàn)的圖層,用于將AVPlayer 播放的視頻顯示出來。

    初始化過程比較簡單,如果按照下面方式初始化AVPlayer。

    playerItem = AVPlayerItem(url:URL.init(fileURLWithPath:videoPath!))

    player = AVPlayer.init(playerItem:playerItem);

    對應初始化過程如圖5。

    圖5:AVPlayer 對應初始化過程

    AVPlayer 會通過AVPlayerItem 去初始化,AVPlayerItem通 過AVAsset 初 始 化,AVAsset 通 過URL 初 始 化(AVFoundation 為我們封裝了一些方法可以直接通過URL初始化AVPlayerItem 或者AVPlayer)。AVPlayer 初始化完畢后,初始化用于顯示視頻的AVPlayerLayer,AVPlayer 會作為參數(shù)傳遞進去。這樣視頻就能播放了。

    視頻播放過程會比較復雜,要想了解視頻是怎樣播放出來的我們首先要熟悉下視頻播放流程。一般而言視頻播放需要經(jīng)過幾個步驟:解協(xié)議,解封裝,解碼視音頻,視音頻同步,解協(xié)議是播放網(wǎng)絡流媒體時的步驟,如果播放本地視頻之需要后面三個步驟即可。

    解協(xié)議:將流媒體協(xié)議的數(shù)據(jù),解析為標準的相應的封裝格式數(shù)據(jù)。視頻數(shù)據(jù)在網(wǎng)絡上傳遞時會根據(jù)不同的流媒體協(xié)議標準傳播數(shù)據(jù),這些協(xié)議在傳輸視音頻數(shù)據(jù)的同時,也會傳輸一些信令數(shù)據(jù)。這些信令數(shù)據(jù)包括對播放的控制(播放,暫停,停止),或者對網(wǎng)絡狀態(tài)的描述等。解協(xié)議的過程中會去除掉信令數(shù)據(jù)而只保留視音頻數(shù)據(jù)。例如,采用RTMP 協(xié)議傳輸?shù)臄?shù)據(jù),經(jīng)過解協(xié)議操作后,輸出FLV 格式的數(shù)據(jù)。

    解封裝:將輸入的封裝格式的數(shù)據(jù),分離成為音頻流壓縮編碼數(shù)據(jù)和視頻流壓縮編碼數(shù)據(jù)。封裝格式種類很多,例如MP4,MKV,RMVB,TS,F(xiàn)LV,AVI 等等,它的作用就是將已經(jīng)壓縮編碼的視頻數(shù)據(jù)和音頻數(shù)據(jù)按照一定的格式放到一起。例如,F(xiàn)LV 格式的數(shù)據(jù),經(jīng)過解封裝操作后,輸出H.264 編碼的視頻碼流和AAC 編碼的音頻碼流。

    解碼:將視頻/音頻壓縮編碼數(shù)據(jù),解碼成為非壓縮的視頻/音頻原始數(shù)據(jù)。音頻的壓縮編碼標準包含AAC,MP3,AC-3 等等,視頻的壓縮編碼標準則包含H.264,MPEG2,VC-1 等等。解碼是整個系統(tǒng)中最重要也是最復雜的一個環(huán)節(jié)。通過解碼,壓縮編碼的視頻數(shù)據(jù)輸出成為非壓縮的顏色數(shù)據(jù),例如YUV420P,RGB 等等;壓縮編碼的音頻 數(shù)據(jù)輸出成為非壓縮的音頻抽樣數(shù)據(jù),例如PCM 數(shù)據(jù)。

    視頻解碼方式分為硬解和軟解。硬解:用硬件來進行解碼,通過顯卡的視頻加速功能對高清視頻進行解碼,依靠顯卡GPU 的。優(yōu)點是低功耗、發(fā)熱少、效率高,缺點是視頻兼容性差、支持度低;軟解:用軟件進行解碼,但是實際最終還是要硬件來支持的,這個硬件就是CPU。優(yōu)點是兼容強、全解碼、效果好,缺點是對CPU 要求高、效率低、發(fā)熱大。注意:AVFoundation 框架也使用硬件對視頻進行硬編碼和解碼,編碼后直接寫入文件,解碼后直接顯示。蘋果在iOS 8.0系統(tǒng)之前,沒有開放系統(tǒng)的硬件編碼解碼功能,不過Mac OS 系統(tǒng)一直有。在iOS 8.0 后,蘋果將該框架引入iOS 系統(tǒng)。用戶可以直接使用Video ToolBox 的框架來處理硬件的編碼和解碼。

    視音頻同步:根據(jù)解封裝模塊處理過程中獲取到的參數(shù)信息,同步解碼出來的視頻和音頻數(shù)據(jù)。同步完畢后并將視頻音頻數(shù)據(jù)送至系統(tǒng)的顯卡和聲卡播放出來。

    有了對上述步驟的理解,我們總結iOS 中視頻播放的流程,首先對AVPlayer 初始化,完畢后開始播放視頻,如果我們播放的是網(wǎng)絡上的視頻AVPlayer 首先會有一個解協(xié)議的過程,將網(wǎng)絡上的流媒體數(shù)據(jù)解協(xié)議成視頻封裝數(shù)據(jù)。如果播放本地的視頻文件則直接將文件解封裝成音視頻文件,隨后分別對音視頻文件進行解碼,最后進行音視頻同步呈現(xiàn)出來。

    對于視頻播放模塊框架AVFoundation 怎樣實現(xiàn),通過什么代碼實現(xiàn)以上幾個步驟,蘋果沒有開放這其過程,所以對其探究也很難深入進去,不過我們?nèi)匀豢梢酝ㄟ^調(diào)用函數(shù)調(diào)用棧大致窺見一二,如圖6所示,當開始播放視頻的時候啟動線程調(diào)用了VideoToolBox 框架的相關內(nèi)容,當然不只是VideoToolBox ,我們在其他線程中還能看到MedioToolBox 框架。再往底層還有繪圖相關的框架。

    圖6:VideoToolBox 框架的相關內(nèi)容

    猜你喜歡
    界面
    聲波在海底界面反射系數(shù)仿真計算分析
    微重力下兩相控溫型儲液器內(nèi)氣液界面仿真分析
    國企黨委前置研究的“四個界面”
    當代陜西(2020年13期)2020-08-24 08:22:02
    基于FANUC PICTURE的虛擬軸坐標顯示界面開發(fā)方法研究
    西門子Easy Screen對倒棱機床界面二次開發(fā)
    空間界面
    金秋(2017年4期)2017-06-07 08:22:16
    鐵電隧道結界面效應與界面調(diào)控
    電子顯微打開材料界面世界之門
    人機交互界面發(fā)展趨勢研究
    手機界面中圖形符號的發(fā)展趨向
    新聞傳播(2015年11期)2015-07-18 11:15:04
    午夜福利,免费看| a级毛片在线看网站| 亚洲精品,欧美精品| 桃花免费在线播放| 久久久国产一区二区| 欧美少妇被猛烈插入视频| 免费大片18禁| av福利片在线| 成人18禁高潮啪啪吃奶动态图| 亚洲高清免费不卡视频| 日韩 亚洲 欧美在线| 韩国精品一区二区三区 | 国国产精品蜜臀av免费| 亚洲av免费高清在线观看| 飞空精品影院首页| 免费少妇av软件| 黑人巨大精品欧美一区二区蜜桃 | 2018国产大陆天天弄谢| 色哟哟·www| 久久综合国产亚洲精品| 国语对白做爰xxxⅹ性视频网站| 超碰97精品在线观看| 久久久久久人人人人人| 如何舔出高潮| 亚洲丝袜综合中文字幕| 女性生殖器流出的白浆| 免费人妻精品一区二区三区视频| 最近最新中文字幕免费大全7| 欧美日韩视频高清一区二区三区二| 国产成人免费无遮挡视频| 老司机影院成人| 超碰97精品在线观看| 亚洲第一av免费看| 97超碰精品成人国产| 在线天堂中文资源库| 一级,二级,三级黄色视频| 99久久中文字幕三级久久日本| 亚洲 欧美一区二区三区| 秋霞在线观看毛片| 777米奇影视久久| 国产1区2区3区精品| 亚洲欧美日韩另类电影网站| 日韩欧美一区视频在线观看| 成人毛片a级毛片在线播放| 日韩制服骚丝袜av| 日日摸夜夜添夜夜爱| 国产精品一二三区在线看| 在线观看免费视频网站a站| 久久女婷五月综合色啪小说| 欧美人与性动交α欧美精品济南到 | 久久精品aⅴ一区二区三区四区 | 建设人人有责人人尽责人人享有的| 中文字幕亚洲精品专区| 国产xxxxx性猛交| 亚洲第一av免费看| 人妻一区二区av| 久久狼人影院| 赤兔流量卡办理| 18+在线观看网站| 欧美bdsm另类| 日韩人妻精品一区2区三区| 91午夜精品亚洲一区二区三区| 亚洲精品自拍成人| 国产精品成人在线| 看非洲黑人一级黄片| 寂寞人妻少妇视频99o| 欧美精品一区二区大全| 亚洲天堂av无毛| 久久久久久伊人网av| 成人国语在线视频| 亚洲 欧美一区二区三区| 午夜老司机福利剧场| 国产 精品1| 亚洲精品成人av观看孕妇| 性色av一级| 麻豆精品久久久久久蜜桃| 国产无遮挡羞羞视频在线观看| 黄网站色视频无遮挡免费观看| 中文字幕免费在线视频6| 99热6这里只有精品| 亚洲精品日本国产第一区| 99久国产av精品国产电影| 在现免费观看毛片| 国产精品女同一区二区软件| 成人国产麻豆网| 边亲边吃奶的免费视频| 少妇高潮的动态图| 纵有疾风起免费观看全集完整版| 日本vs欧美在线观看视频| 最近中文字幕高清免费大全6| 少妇 在线观看| 亚洲国产看品久久| 亚洲精品视频女| 精品久久国产蜜桃| 在现免费观看毛片| 免费看不卡的av| 久久久亚洲精品成人影院| 亚洲av日韩在线播放| 大香蕉久久成人网| 桃花免费在线播放| 欧美日韩视频高清一区二区三区二| 9191精品国产免费久久| av女优亚洲男人天堂| a级毛色黄片| 另类精品久久| 精品人妻一区二区三区麻豆| 亚洲国产精品国产精品| 日韩成人伦理影院| 欧美激情 高清一区二区三区| 国产一区二区三区综合在线观看 | 国产激情久久老熟女| 在线观看美女被高潮喷水网站| 一区二区三区四区激情视频| 好男人视频免费观看在线| 国产 精品1| 国产一级毛片在线| av在线app专区| 少妇的逼水好多| 欧美日韩综合久久久久久| 成人手机av| 一级毛片电影观看| 国产黄色视频一区二区在线观看| 青春草视频在线免费观看| 日韩制服丝袜自拍偷拍| 成人二区视频| 高清视频免费观看一区二区| av福利片在线| 国产免费一区二区三区四区乱码| 精品一区二区三卡| 精品福利永久在线观看| 免费av中文字幕在线| 最近的中文字幕免费完整| 另类亚洲欧美激情| 超色免费av| 青春草亚洲视频在线观看| 日韩一区二区三区影片| 国产伦理片在线播放av一区| 欧美日韩视频精品一区| 嫩草影院入口| 国产精品麻豆人妻色哟哟久久| 日本黄大片高清| 一本色道久久久久久精品综合| 人妻人人澡人人爽人人| 一级爰片在线观看| 午夜日本视频在线| 视频中文字幕在线观看| 97在线人人人人妻| 在线观看免费视频网站a站| 欧美精品人与动牲交sv欧美| 天堂8中文在线网| 国产精品久久久久久精品古装| 日韩在线高清观看一区二区三区| 久久久久精品久久久久真实原创| 欧美人与性动交α欧美软件 | 国产视频首页在线观看| 午夜精品国产一区二区电影| 国产欧美亚洲国产| 亚洲成国产人片在线观看| 国内精品宾馆在线| 成人综合一区亚洲| 国产精品 国内视频| 日韩三级伦理在线观看| 少妇人妻精品综合一区二区| 91精品三级在线观看| 免费播放大片免费观看视频在线观看| 性色avwww在线观看| 又黄又爽又刺激的免费视频.| 亚洲国产精品一区二区三区在线| 激情五月婷婷亚洲| a级毛色黄片| 尾随美女入室| 菩萨蛮人人尽说江南好唐韦庄| 国产在视频线精品| 考比视频在线观看| 日韩中字成人| 2021少妇久久久久久久久久久| 免费少妇av软件| 日韩av在线免费看完整版不卡| 综合色丁香网| 99久久人妻综合| 香蕉丝袜av| 高清av免费在线| 少妇人妻精品综合一区二区| 伦理电影大哥的女人| 色婷婷av一区二区三区视频| 侵犯人妻中文字幕一二三四区| 人妻一区二区av| 免费播放大片免费观看视频在线观看| 久久久久网色| 国产在线视频一区二区| 各种免费的搞黄视频| 最近2019中文字幕mv第一页| www.av在线官网国产| 少妇人妻 视频| 最近手机中文字幕大全| 国产成人午夜福利电影在线观看| 亚洲精品,欧美精品| 国国产精品蜜臀av免费| 9热在线视频观看99| 国产精品不卡视频一区二区| 人人妻人人澡人人看| 午夜91福利影院| av在线老鸭窝| 两性夫妻黄色片 | 国产成人一区二区在线| 女人精品久久久久毛片| 性色av一级| 亚洲经典国产精华液单| 激情五月婷婷亚洲| 新久久久久国产一级毛片| 精品福利永久在线观看| 美女福利国产在线| 成年女人在线观看亚洲视频| 免费在线观看黄色视频的| 国产在视频线精品| 久久久久久久久久成人| av片东京热男人的天堂| 狂野欧美激情性bbbbbb| 国产男女超爽视频在线观看| 久久久精品94久久精品| 三上悠亚av全集在线观看| 国产精品久久久久久久电影| 欧美精品av麻豆av| 涩涩av久久男人的天堂| 街头女战士在线观看网站| 精品少妇久久久久久888优播| 97在线人人人人妻| 91aial.com中文字幕在线观看| 久久精品国产综合久久久 | 日日摸夜夜添夜夜爱| 欧美精品高潮呻吟av久久| 亚洲精品视频女| 卡戴珊不雅视频在线播放| 国产精品久久久av美女十八| 日本av免费视频播放| 成人无遮挡网站| 80岁老熟妇乱子伦牲交| 久久久久久伊人网av| 少妇人妻精品综合一区二区| 老司机影院毛片| 夫妻午夜视频| 极品少妇高潮喷水抽搐| 蜜臀久久99精品久久宅男| 丝袜美足系列| 天天影视国产精品| 波多野结衣一区麻豆| 久久午夜福利片| 亚洲国产看品久久| 极品人妻少妇av视频| 水蜜桃什么品种好| 美女脱内裤让男人舔精品视频| 一级毛片电影观看| 久久久久久久大尺度免费视频| 久久精品人人爽人人爽视色| 两个人看的免费小视频| 巨乳人妻的诱惑在线观看| 香蕉国产在线看| 亚洲综合精品二区| 亚洲精品美女久久久久99蜜臀 | 一级爰片在线观看| 亚洲av中文av极速乱| 久久国产亚洲av麻豆专区| 国产亚洲av片在线观看秒播厂| 永久免费av网站大全| 午夜免费鲁丝| 久久这里有精品视频免费| 日韩中字成人| 国产乱来视频区| 亚洲经典国产精华液单| 国产综合精华液| 免费黄频网站在线观看国产| 两性夫妻黄色片 | 久久精品人人爽人人爽视色| 两个人看的免费小视频| 亚洲欧美色中文字幕在线| 成人手机av| 咕卡用的链子| 少妇的逼水好多| 亚洲精品,欧美精品| 黄色毛片三级朝国网站| 97在线人人人人妻| 成年人免费黄色播放视频| 爱豆传媒免费全集在线观看| 在线观看www视频免费| 日韩熟女老妇一区二区性免费视频| 亚洲av福利一区| 在线亚洲精品国产二区图片欧美| 亚洲av国产av综合av卡| 午夜福利视频精品| 80岁老熟妇乱子伦牲交| 中国三级夫妇交换| 狠狠精品人妻久久久久久综合| 男女免费视频国产| 国产av一区二区精品久久| 免费av不卡在线播放| 波多野结衣一区麻豆| 欧美性感艳星| 亚洲国产欧美日韩在线播放| videosex国产| 国产成人免费观看mmmm| 国内精品宾馆在线| av视频免费观看在线观看| 亚洲美女黄色视频免费看| 丝袜美足系列| 看免费成人av毛片| 日韩av免费高清视频| 久久久久久人妻| 汤姆久久久久久久影院中文字幕| 中文字幕精品免费在线观看视频 | 97在线视频观看| 亚洲伊人色综图| 国产精品无大码| www日本在线高清视频| 国产在线视频一区二区| 欧美少妇被猛烈插入视频| 成年av动漫网址| 久久99精品国语久久久| 最近2019中文字幕mv第一页| 精品酒店卫生间| 最新中文字幕久久久久| 黄色视频在线播放观看不卡| 亚洲精品久久成人aⅴ小说| 最近最新中文字幕大全免费视频 | 亚洲人成77777在线视频| 久久综合国产亚洲精品| 国产又色又爽无遮挡免| 一级片'在线观看视频| 老熟女久久久| 亚洲色图 男人天堂 中文字幕 | 在线天堂最新版资源| 久久青草综合色| 午夜免费观看性视频| av片东京热男人的天堂| 自线自在国产av| 日本与韩国留学比较| 中文乱码字字幕精品一区二区三区| 久久久久久久久久久免费av| 啦啦啦中文免费视频观看日本| 考比视频在线观看| 免费久久久久久久精品成人欧美视频 | 亚洲,欧美精品.| xxx大片免费视频| 亚洲av在线观看美女高潮| 91国产中文字幕| 国产成人aa在线观看| 香蕉丝袜av| 午夜福利视频精品| 九草在线视频观看| 观看美女的网站| 亚洲人成网站在线观看播放| 国产国拍精品亚洲av在线观看| 99久久人妻综合| 国产熟女午夜一区二区三区| 久久人人爽人人片av| 亚洲欧美精品自产自拍| 精品久久久精品久久久| 大陆偷拍与自拍| 黄色毛片三级朝国网站| 在线天堂中文资源库| 亚洲国产精品一区三区| 国产精品不卡视频一区二区| av一本久久久久| 日韩视频在线欧美| 亚洲国产欧美在线一区| 国产成人精品一,二区| 日韩制服骚丝袜av| 老熟女久久久| 日本wwww免费看| 美女视频免费永久观看网站| 街头女战士在线观看网站| 97精品久久久久久久久久精品| 亚洲一码二码三码区别大吗| 一区二区三区乱码不卡18| 亚洲在久久综合| 国产亚洲最大av| 国产色婷婷99| 中文精品一卡2卡3卡4更新| 精品亚洲乱码少妇综合久久| 人人妻人人澡人人看| 飞空精品影院首页| 中文字幕人妻熟女乱码| 丝袜在线中文字幕| 成人黄色视频免费在线看| 国产精品一二三区在线看| 日韩一本色道免费dvd| 成年人午夜在线观看视频| 一级毛片黄色毛片免费观看视频| 久久精品国产综合久久久 | 欧美日韩av久久| 欧美xxⅹ黑人| 99久久精品国产国产毛片| 最近中文字幕2019免费版| 啦啦啦视频在线资源免费观看| 在线精品无人区一区二区三| 视频中文字幕在线观看| 不卡视频在线观看欧美| av在线播放精品| 国产探花极品一区二区| 黄色怎么调成土黄色| 少妇被粗大的猛进出69影院 | 久久久国产欧美日韩av| 一本色道久久久久久精品综合| 日日啪夜夜爽| 一级毛片 在线播放| 国产在线一区二区三区精| 视频区图区小说| 中文字幕免费在线视频6| 五月伊人婷婷丁香| 男人舔女人的私密视频| 免费播放大片免费观看视频在线观看| 韩国精品一区二区三区 | 成年动漫av网址| 国产成人精品婷婷| 国产又爽黄色视频| 一级片'在线观看视频| 免费少妇av软件| 亚洲av福利一区| 国产又爽黄色视频| 色哟哟·www| h视频一区二区三区| 亚洲内射少妇av| 在线观看免费视频网站a站| 高清av免费在线| 成年女人在线观看亚洲视频| 激情五月婷婷亚洲| 国产伦理片在线播放av一区| 天美传媒精品一区二区| 黄色一级大片看看| 大片免费播放器 马上看| 免费av不卡在线播放| 午夜91福利影院| 人体艺术视频欧美日本| 99久久精品国产国产毛片| 午夜福利在线观看免费完整高清在| 国产成人a∨麻豆精品| 亚洲经典国产精华液单| 一区二区三区乱码不卡18| 香蕉丝袜av| 久久国内精品自在自线图片| 欧美激情国产日韩精品一区| 久久精品久久精品一区二区三区| 九草在线视频观看| 99九九在线精品视频| 久久久久久久久久人人人人人人| 我要看黄色一级片免费的| 国产成人精品久久久久久| 在线 av 中文字幕| 伊人亚洲综合成人网| 97人妻天天添夜夜摸| 永久免费av网站大全| 九色亚洲精品在线播放| 日产精品乱码卡一卡2卡三| 麻豆精品久久久久久蜜桃| av播播在线观看一区| 国产精品久久久久久久久免| 国产国语露脸激情在线看| 亚洲av在线观看美女高潮| 桃花免费在线播放| 男女无遮挡免费网站观看| 97在线视频观看| 久久亚洲国产成人精品v| 久久综合国产亚洲精品| 精品酒店卫生间| 好男人视频免费观看在线| 一级毛片黄色毛片免费观看视频| 男人爽女人下面视频在线观看| 成人毛片a级毛片在线播放| 91精品国产国语对白视频| 夜夜爽夜夜爽视频| 丰满乱子伦码专区| 18+在线观看网站| 黄片播放在线免费| 性高湖久久久久久久久免费观看| 久久精品国产综合久久久 | a级毛色黄片| 国产熟女午夜一区二区三区| 久久精品国产鲁丝片午夜精品| 99热网站在线观看| 午夜影院在线不卡| www.熟女人妻精品国产 | 99九九在线精品视频| 中文字幕人妻丝袜制服| 国产成人aa在线观看| av在线观看视频网站免费| 蜜桃国产av成人99| 精品一区二区免费观看| 亚洲欧美色中文字幕在线| 亚洲欧洲日产国产| 欧美激情国产日韩精品一区| 热re99久久国产66热| 肉色欧美久久久久久久蜜桃| 国产精品99久久99久久久不卡 | 精品福利永久在线观看| 国产精品国产三级国产专区5o| 91aial.com中文字幕在线观看| 国产欧美日韩一区二区三区在线| 搡女人真爽免费视频火全软件| 涩涩av久久男人的天堂| 精品久久国产蜜桃| 欧美激情国产日韩精品一区| 亚洲婷婷狠狠爱综合网| 高清黄色对白视频在线免费看| 亚洲五月色婷婷综合| 波多野结衣一区麻豆| 亚洲精品一区蜜桃| 国产男人的电影天堂91| 国产精品不卡视频一区二区| 高清不卡的av网站| 夫妻性生交免费视频一级片| 在线 av 中文字幕| av播播在线观看一区| 男人舔女人的私密视频| xxx大片免费视频| 久久久欧美国产精品| 中国国产av一级| 少妇高潮的动态图| 热99国产精品久久久久久7| 日韩人妻精品一区2区三区| 黄网站色视频无遮挡免费观看| 少妇被粗大猛烈的视频| 一级爰片在线观看| 久久影院123| 在线天堂中文资源库| 亚洲综合精品二区| 亚洲精品乱码久久久久久按摩| 天堂俺去俺来也www色官网| 国产国语露脸激情在线看| 国产精品久久久av美女十八| 在线观看国产h片| 亚洲精品美女久久av网站| 美国免费a级毛片| 精品福利永久在线观看| 国产一级毛片在线| 最近最新中文字幕免费大全7| 在线观看免费视频网站a站| 人人澡人人妻人| 色网站视频免费| a 毛片基地| 一区在线观看完整版| 乱码一卡2卡4卡精品| 国产精品欧美亚洲77777| 捣出白浆h1v1| 久久国内精品自在自线图片| 欧美日韩成人在线一区二区| 国产精品蜜桃在线观看| 国产精品国产三级国产av玫瑰| 热99久久久久精品小说推荐| 在线观看免费高清a一片| 满18在线观看网站| 婷婷色av中文字幕| 一本—道久久a久久精品蜜桃钙片| 久久精品aⅴ一区二区三区四区 | 日本欧美国产在线视频| 国产精品偷伦视频观看了| 久久精品国产鲁丝片午夜精品| 日本猛色少妇xxxxx猛交久久| 精品人妻熟女毛片av久久网站| 亚洲精品国产av成人精品| 国产极品天堂在线| 丝瓜视频免费看黄片| 一级a做视频免费观看| 看免费成人av毛片| 王馨瑶露胸无遮挡在线观看| 天天躁夜夜躁狠狠久久av| 在线亚洲精品国产二区图片欧美| 国产男人的电影天堂91| 国产探花极品一区二区| 高清欧美精品videossex| 亚洲精品,欧美精品| av在线app专区| 搡老乐熟女国产| 国产免费现黄频在线看| 欧美精品亚洲一区二区| 久久精品国产自在天天线| 一级爰片在线观看| 午夜免费鲁丝| 亚洲欧美一区二区三区黑人 | 精品少妇黑人巨大在线播放| av电影中文网址| 免费高清在线观看视频在线观看| 十八禁高潮呻吟视频| 精品一区在线观看国产| 久久久国产精品麻豆| 水蜜桃什么品种好| 亚洲欧洲国产日韩| 亚洲精品久久成人aⅴ小说| 免费观看无遮挡的男女| 国产福利在线免费观看视频| 国产一级毛片在线| 在线观看三级黄色| 久久鲁丝午夜福利片| 99久国产av精品国产电影| 国产 一区精品| 日本欧美视频一区| 免费观看性生交大片5| 欧美xxⅹ黑人| 如何舔出高潮| 一本—道久久a久久精品蜜桃钙片| 午夜福利,免费看| 精品久久久精品久久久| 久久99精品国语久久久| 免费黄频网站在线观看国产| 国产综合精华液| 国产免费福利视频在线观看| 国产成人欧美| 欧美精品国产亚洲| 黄色一级大片看看| 欧美精品亚洲一区二区| 精品一区二区三区四区五区乱码 | 一级片'在线观看视频| www.av在线官网国产| 国语对白做爰xxxⅹ性视频网站| 婷婷色麻豆天堂久久| 乱码一卡2卡4卡精品| 人人澡人人妻人|