精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Chrome 66禁止聲音自動播放之后

系統 瀏覽器
聲音無法自動播放這個在IOS/Android上面一直是個慣例,桌面版的Safari在2017年的11版本也宣布禁掉帶有聲音的多媒體自動播放功能,緊接著在2018年4月份發布的Chrome 66也正式關掉了聲音自動播放。

聲音無法自動播放這個在IOS/Android上面一直是個慣例,桌面版的Safari在2017年的11版本也宣布禁掉帶有聲音的多媒體自動播放功能,緊接著在2018年4月份發布的Chrome 66也正式關掉了聲音自動播放,也就是說<audio autopaly></audio> <video autoplay></video>在桌面版瀏覽器也將失效。

最開始移動端瀏覽器是完全禁止音視頻自動播放的,考慮到了手機的帶寬以及對電池的消耗。但是后來又改了,因為瀏覽器廠商發現網頁開發人員可能會使用GIF動態圖代替視頻實現自動播放,正如IOS文檔所說,使用GIF的帶寬流量是Video(h264)格式的12倍,而播放性能消耗是2倍,所以這樣對用戶反而是不利的。又或者是使用Canvas進行hack,如Android Chrome文檔提到。因此瀏覽器廠商放開了對多媒體自動播放的限制,只要具備以下條件就能自動播放:

[[229705]]

(1)沒音頻軌道,或者設置了muted屬性

(2)在視圖里面是可見的,要插入到DOM里面并且不是display: none或者visibility: hidden的,沒有滑出可視區域。

換句話說,只要你不開聲音擾民,且對用戶可見,就讓你自動播放,不需要你去使用GIF的方法進行hack.

桌面版的瀏覽器在近期也使用了這個策略,如升級后的Safari 11的說明:

以及Chrome文檔的說明:

[[229706]]

這個策略無疑對視頻網站的沖擊***,如在Safari打開tudou的提示:

添加了一個設置向導。Chrome的禁止更加人性化,它有一個MEI的策略,這個策略大概是說只要用戶在當前網頁主動播放過超過7s的音視頻(視頻窗口不能小于200 x 140),就允許自動播放。

對于網頁開發人員來說,應當如何有效地規避這個風險呢?

Chrome的文檔給了一個***實踐:先把音視頻加一個muted的屬性就可以自動播放,然后再顯示一個聲音被關掉的按鈕,提示用戶點一下打開聲音。對于視頻來說,確實可以這樣處理,而對于音頻來說,很多人是監聽頁面點擊事件,只要點一次了就開始播放聲音,一般就是播放個背景音樂。但是如果對于有多個聲音資源的頁面來說如何自動播放多個聲音呢?

首先,如果用戶還沒進行交互就調用播放聲音的API,Chrome會這么提示:

  • DOMException: play() failed because the user didn’t interact with the document first.

Safari會這么提示:

NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.

Chrome報錯提示最為友善,意思是說,用戶還沒有交互,不能調play。用戶的交互包括哪些呢?包括用戶觸發的touchend, click, doubleclick或者是 keydown事件,在這些事件里面就能調play.

所以上面提到很多人是監聽整個頁面的點擊事件進行播放,不管點的哪里,只要點了就行,包括觸摸下滑。這種方法只適用于一個聲音資源,不適用多個聲音,多個聲音應該怎么破呢?這里并不是說要和瀏覽器對著干,“逆天而行”,我們的目的還是為了提升用戶體驗,因為有些場景如果能自動播放確實比較好,如一些答題的場景,需要聽聲音進行答題,如果用戶在答題的過程中能依次自動播放相應題目的聲音,確實比較方便。同時也是討論聲音播放的技術實現。

原生播放視頻應該就只能使用video標簽,而原生播放音頻除了使用audio標簽之外,還有另外一個API叫AudioContext,它是能夠用來控制聲音播放并帶了很多豐富的操控接口。調audio.play必須在點擊事件里面響應,而使用AudioContext的區別在于只要用戶點過頁面任何一個地方之后就都能播放了。所以可以用AudioContext取代audio標簽播放聲音。

我們先用audio.play檢測頁面是否支持自動播放,以便決定我們播放的時機。

1. 頁面自動播放檢測

方法很簡單,就是創建一個audio元素,給它賦一個src,append到dom里面,然后調用它的play,看是否會拋異常,如果捕獲到異常則說明不支持,如下代碼所示:

  1. function testAutoPlay () { 
  2.     // 返回一個promise以告訴調用者檢測結果 
  3.     return new Promise(resolve => { 
  4.         let audio = document.createElement('audio'); 
  5.         // require一個本地文件,會變成base64格式 
  6.         audio.src = require('@/assets/empty-audio.mp3'); 
  7.         document.body.appendChild(audio); 
  8.         let autoplay = true
  9.         // play返回的是一個promise 
  10.         audio.play().then(() => { 
  11.             // 支持自動播放 
  12.             autoplay = true
  13.         }).catch(err => { 
  14.             // 不支持自動播放 
  15.             autoplay = false
  16.         }).finally(() => { 
  17.             audio.remove(); 
  18.             // 告訴調用者結果 
  19.             resolve(autoplay); 
  20.         }); 
  21.     }); 

這里使用一個空的音頻文件,它是一個時間長度為0s的mp3文件,大小只有4kb,并且通過webpack打包成本地的base64格式,所以不用在canplay事件之后才調用play,直接寫成同步代碼,如果src是一個遠程的url,那么就得監聽canplay事件,然后在里面play.

在告訴調用者結果時,使用Promise resolve的方式,因為play的結果是異步的,并且庫函數里面不推薦使用await。

2. 監聽頁面交互點擊

如果當前頁面能夠自動播放,那么可以毫無顧忌地讓聲音自動播放了,否則就得等到用戶開始和這個頁面交互了即有點擊操作了之后才能自動播放,如下代碼所示:

  1. let audioInfo = { 
  2.     autoplay: false
  3.     testAutoPlay () { 
  4.         // 代碼同,略...  
  5.     }, 
  6.     // 監聽頁面的點擊事件,一旦點過了就能autoplay了 
  7.     setAutoPlayWhenClick () { 
  8.         function setAutoPlay () { 
  9.             // 設置自動播放為true 
  10.             audioInfo.autoplay = true
  11.             document.removeEventListener('click', setAutoPlay); 
  12.             document.removeEventListener('touchend', setAutoPlay); 
  13.         } 
  14.         document.addEventListener('click', setCallback); 
  15.         document.addEventListener('touchend', setCallback); 
  16.     }, 
  17.     init () { 
  18.         // 檢測是否能自動播放 
  19.         audioInfo.testAutoPlay().then(autoplay => { 
  20.             if (!audioInfo.autoplay) { 
  21.                 audioInfo.autoplay = autoplay; 
  22.             } 
  23.         }); 
  24.         // 用戶點擊交互之后,設置成能自動播放 
  25.         audioInfo.setAutoPlayWhenClick(); 
  26.     } 
  27. }; 
  28. audioInfo.init(); 
  29. export default audioInfo; 

上面代碼主要監聽document的click事件,在click事件里面把autoplay值置為true。換句話說,只要用戶點過了,我們就能隨時調AudioContext的播放API了,即使不是在點擊事件響應函數里面,雖然無法在異步回調里面調用audio.play,但是AudioContext可以做到。

代碼***通過調用audioInfo.init,把能夠自動播放的信息存儲在了audioInfo.autoplay這個變量里面。當需要播放聲音的時候,例如切到了下一題,需要自動播放當前題的幾個音頻資源,就取這個變量判斷是否能自動播放,如果能就播,不能就等用戶點聲音圖標自己去播,并且如果他點過了一次之后就都能自動播放了。

那么怎么用AudioContext播放聲音呢?

3. AudioContext播放聲音

先請求音頻文件,放到ArrayBuffer里面,然后用AudioContext的API進行decode解碼,解碼完了再讓它去play,就行了。

我們先寫一個請求音頻文件的ajax:

  1. function request (url) { 
  2.     return new Promise (resolve => { 
  3.         let xhr = new XMLHttpRequest(); 
  4.         xhr.open('GET', url); 
  5.         // 這里需要設置xhr response的格式為arraybuffer 
  6.         // 否則默認是二進制的文本格式 
  7.         xhr.responseType = 'arraybuffer'
  8.         xhr.onreadystatechange = function () { 
  9.             // 請求完成,并且成功 
  10.             if (xhr.readyState === 4 && xhr.status === 200) { 
  11.                 resolve(xhr.response); 
  12.             } 
  13.         }; 
  14.         xhr.send(); 
  15.     }); 

這里需要注意的是要把xhr響應類型改成arraybuffer,因為decode需要使用這種存儲格式,這樣設置之后,xhr.response就是一個ArrayBuffer格式了。

接著實例化一個AudioContext,讓它去解碼然后play,如下代碼所示:

  1. // Safari是使用webkit前綴 
  2. let context = new (window.AudioContext || window.webkitAudioContext)(); 
  3. // 請求音頻數據 
  4. let audioMedia = await request(url); 
  5. // 進行decode和play 
  6. context.decodeAudioData(audioMedia, decode => play(context, decode)); 

play的函數實現如下:

  1. function play (context, decodeBuffer) { 
  2.     let source = context.createBufferSource(); 
  3.     source.buffer = decodeBuffer; 
  4.     source.connect(context.destination); 
  5.     // 從0s開始播放 
  6.     source.start(0); 

這樣就實現了AudioContext播放音頻的基本功能。

如果當前頁面是不能autoplay,那么在 new AudioContext的時候,Chrome控制臺會報一個警告:

這個的意思是說,用戶還沒有和頁面交互你就初始化了一個AudioContext,我是不會讓你play的,你需要在用戶點擊了之后resume恢復這個context才能夠進行play.

假設我們不管這個警告,直接調用play沒有報錯,但是沒有聲音。所以這個時候就要用到上一步audioInfo.autoplay的信息,如果這個為true,那么可以play,否則不能play,需要讓用戶自己點聲音圖標進行播放。所以,把代碼重新組織一下:

  1. function play (context, decodeBuffer) { 
  2.     // 調用resume恢復播放 
  3.     context.resume(); 
  4.     let source = context.createBufferSource(); 
  5.     source.buffer = decodeBuffer; 
  6.     source.connect(context.destination); 
  7.     source.start(0); 
  8.   
  9. function playAudio (context, url) { 
  10.     let audioMedia = await request(url); 
  11.     context.decodeAudioData(audioMedia, decode => play(context, decode)); 
  12.   
  13. let context = new (window.AudioContext || window.webkitAudioContext)(); 
  14. // 如果能夠自動播放 
  15. if (audioInfo.autoplay) { 
  16.     playAudio(url); 
  17. // 支持用戶點擊聲音圖標自行播放 
  18. $('.audio-icon').on('click'function () { 
  19.     playAudio($(this).data('url')); 
  20. }); 

調了resume之后,如果之前有被禁止播放的音頻就會開始播放,如果沒有則直接恢復context的自動播放功能。這樣就達到基本目的,如果支持自動播放就在代碼里面直接play,不支持就等點擊。只要點了一次,不管點的哪里接下來的都能夠自動播放了。就能實現類似于每隔3s自動播下一題的音頻的目的:

  1. // 每隔3秒自動播放一個聲音 
  2. playAudio('question-1.mp3'); 
  3. setTimeout(() => playAudio(context, 'question-2.mp3'), 3000); 
  4. setTimeout(() => playAudio(context, 'question-3.mp3'), 3000); 

這里還有一個問題,怎么知道每個聲音播完了,然后再隔個3s播放下一個聲音呢?可以通過兩個參數,一個是解碼后的decodeBuffer有當前音頻的時長duration屬性,而通過context.currentTime可以知道當前播放時間精度,然后就可以弄一個計時器,每隔100ms比較一下context.currentTime是否大于docode.duration,如果是的話說明播完了。soundjs這個庫就是這么實現的,我們可以利用這個庫以方便對聲音的操作。

這樣就實現了利用AudioContext自動播放多個音頻的目的,限制是用戶***打開頁面是不能自動播放的,但是一旦用戶點過頁面的任何一個地方就可以了。

AudioContext還有其它的一些操作。

4. AudioContext控制聲音屬性

例如這個CSS Tricks列了幾個例子,其中一個是利用AudioContext的振蕩器oscillator寫了一個電子木琴:

[[229707]]

這個例子沒有用到任何一個音頻資源,都是直接合成的,感受如這個Demo:Play the Xylophone (Web Audio API).

還有這種混響均衡器的例子:

見這個codepen:Web Audio API: parametric equalizer.

***,一直以來都是只有移動端的瀏覽器禁掉了音視頻的自動播放,現在桌面版的瀏覽器也開始下手了。瀏覽器這樣做的目的在于,不想讓用戶打開一個頁面就各種廣告或者其它亂七八糟的聲音在播,營造一個純靜的環境。但是瀏覽器也不是一刀切,至少允許音視頻靜音的播放。所以對于視頻來說,可以靜音自動播放,然后加個聲音被關掉的圖標讓用戶點擊打開,再加添加設置向導之類的方法引導用戶設置允許當前網站自動播放。而對于聲音可以用AudioContext的API,只要頁面被點過一次AudioContext就被激活了,就能直接在代碼里面控制播放了。

以上可作為當前網頁多媒體播放的***實踐參考。

【本文是51CTO專欄作者“人人網FED”的原創稿件,轉載請通過51CTO聯系原作者獲取授權】

戳這里,看該作者更多好文 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2015-09-01 17:19:02

Chrome音頻

2013-11-15 14:16:49

ChromeChrome 32 B標簽頁

2015-09-01 17:29:11

谷歌瀏覽器Flash

2018-05-22 10:34:06

ChromeHTTPS自動播放

2017-03-27 09:00:09

Windows 7Windows自動播放

2011-03-21 10:13:22

Ubuntu自動播放

2022-03-06 20:02:21

監聽視頻播放

2009-02-09 09:03:31

自動播放病毒木馬

2022-08-26 12:13:08

APIjavascript視頻

2011-08-03 13:30:08

組策略自動播放

2009-11-24 09:01:21

Windows 7自動播放

2009-10-20 10:05:22

Windows 7策略組關閉自動播放

2021-08-30 07:49:32

Javascript西瓜視頻

2009-09-28 08:52:29

Windows 7自動加速自動播放

2010-01-13 08:46:21

Windows 7USB自動播放

2009-06-02 08:55:43

2021-07-26 05:32:47

微軟Edge瀏覽器

2011-08-23 09:47:20

UbuntuU盤

2021-02-04 08:19:47

微軟Edge瀏覽器

2012-12-27 14:29:38

Android開發流媒體
點贊
收藏

51CTO技術棧公眾號

国产99久久九九精品无码免费| 精品国产国产综合精品| 日韩av福利| 国产精品国产三级国产aⅴ中文 | 国产在线观看一区二区| 久久久久久69| 日韩乱码人妻无码中文字幕久久| 成人交换视频| 亚洲国产aⅴ成人精品无吗| 欧美一区二区三区电影在线观看 | 一区二区电影免费观看| 国产精品久久久久久妇女6080 | 亚洲影院免费观看| 日韩一区二区三区高清| www.色视频| 三级成人在线视频| 久久久久久久久久av| 妖精视频在线观看免费| 激情小说一区| 日韩一级免费观看| jizz大全欧美jizzcom| 黑人另类精品××××性爽| 欧美国产精品一区二区| 国产区欧美区日韩区| 一级黄色免费看| 亚洲欧美清纯在线制服| 欧美放荡办公室videos4k| 男女男精品视频网站| 日韩三级毛片| 精品少妇一区二区三区| www.亚洲自拍| 日本久久二区| 在线区一区二视频| 波多野结衣家庭教师在线| 成人黄视频在线观看| 26uuu国产一区二区三区| 亚洲淫片在线视频| 在线免费看av片| 日韩高清电影一区| 欧美亚洲视频在线观看| 国产精彩视频在线观看| 中国成人一区| 草民午夜欧美限制a级福利片| 少妇av片在线观看| 久久99久久人婷婷精品综合| 日韩国产精品亚洲а∨天堂免| 中文字幕av一区二区三区人妻少妇| 成人福利一区二区| 欧美亚洲国产一区二区三区| 成年人在线看片| 国产日韩电影| 色综合中文综合网| 精品免费国产一区二区| 国产精品一区二区av影院萌芽| 欧美日韩国产精品一区二区三区四区| 免费看日本毛片| 成年男女免费视频网站不卡| 香蕉久久一区二区不卡无毒影院| 久久在线中文字幕| 国产高潮在线| 精品久久中文字幕久久av| 国产免费观看高清视频| 深夜福利视频一区二区| 色婷婷久久综合| 黄色三级视频在线| av国产精品| 欧美一区二区三区在线看| 深夜福利网站在线观看| 国产区精品视频在线观看豆花| 精品1区2区在线观看| 国产夫妻性爱视频| 国产精品嫩模av在线| 一区二区三区回区在观看免费视频| 亚洲区免费视频| 成人影院天天5g天天爽无毒影院| 日韩在线视频免费观看高清中文| 麻豆网址在线观看| 韩日欧美一区| 日本成人黄色片| 91麻豆视频在线观看| 国产成人av一区二区三区在线观看| 国产欧美日韩一区二区三区| 免费国产在线观看| 国产精品网站导航| 精品视频在线观看一区二区| 波多野一区二区| 欧美日韩一区二区三区高清| www.偷拍.com| 免费黄色成人| 操日韩av在线电影| 亚洲AV无码成人精品区东京热| 蜜桃视频在线观看一区二区| 99一区二区三区| 国产在线视频资源| 一卡二卡欧美日韩| www.超碰com| 99精品中文字幕在线不卡| 日韩精品欧美国产精品忘忧草 | 欧美亚洲第一页| 国产又粗又猛又爽又黄视频 | 三级一区在线视频先锋| 91视频国产一区| 欧美拍拍视频| 亚洲伦理在线精品| 虎白女粉嫩尤物福利视频| 日本一区二区三区电影免费观看| 亚洲天堂av电影| 久久免费在线观看视频| 日本不卡中文字幕| 国产专区一区二区| 91麻豆一二三四在线| 色综合天天视频在线观看| 日本成人xxx| 成人免费av| 2019中文字幕免费视频| 99热精品在线播放| 国产精品天天看| 日韩欧美在线播放视频| 中文字幕一区二区三区日韩精品| 中文字幕在线精品| 日韩欧美一级视频| 成人在线综合网| 亚洲欧美久久久久一区二区三区| 天堂√中文最新版在线| 欧美xxxxxxxx| 男人操女人的视频网站| 免费的国产精品| 欧美一区二区综合| 国产网站在线| 亚洲精品一区二区三区香蕉 | 亚洲女同另类| 国产女人精品视频| 岛国最新视频免费在线观看| 欧美日韩精品在线观看| 国产女人18毛片水真多18| 欧美久久成人| 国产精品yjizz| 性欧美ⅴideo另类hd| 6080亚洲精品一区二区| 在线观看天堂av| 久久99热狠狠色一区二区| 日韩精品电影网站| 国产一区一一区高清不卡| 国产亚洲精品美女久久久| 亚洲色成人www永久网站| 2022国产精品视频| 国产极品美女高潮无套久久久| 亚洲激情播播| 国产精品va在线| avtt亚洲| 欧美一区二区国产| 久久久久成人网站| caoporen国产精品视频| 一区二区传媒有限公司| 少妇一区二区三区| 在线āv视频| 精品国产aaa| 九九精品在线| 日韩av观看网址| 免费在线超碰| 欧美色男人天堂| 黄色精品视频在线观看| 开心九九激情九九欧美日韩精美视频电影 | 9765激情中文在线| 日韩电视剧免费观看网站| 国产美女激情视频| 国产丝袜在线精品| 午夜视频在线网站| 午夜精品999| 九色91国产| 欧美va在线观看| 日韩在线播放视频| 成人乱码一区二区三区 | 成年人晚上看的视频| 国产精品久久久久久久岛一牛影视 | 欧美一级特黄aaaaaa在线看片| 中文字幕一区二区三区日韩精品| 69视频在线免费观看| av影片在线看| 日韩欧美一二区| 久久中文字幕免费| 1024成人网| 成人网站免费观看| 美女诱惑一区二区| 国产夫妻自拍一区| 国产欧美日韩| 俄罗斯精品一区二区三区| 伊人色综合一区二区三区影院视频| 亚洲色图25p| www.好吊色| 色拍拍在线精品视频8848| 日韩在线中文字幕视频| 91麻豆国产自产在线观看| 色一情一区二区三区| 亚洲精品欧洲| 自拍偷拍亚洲色图欧美| 美女网站色精品尤物极品姐弟| 国产欧美一区二区| 九色porny丨入口在线| 日韩在线视频导航| 欧美孕妇孕交| 日韩免费看网站| 中文字幕视频在线播放| 午夜私人影院久久久久| 人人艹在线视频| 久久婷婷久久一区二区三区| 中文字幕 欧美 日韩| 青青草97国产精品免费观看无弹窗版| 国产aaa免费视频| 日韩综合在线| 欧美日韩一区在线视频| 第四色中文综合网| 亚洲自拍另类欧美丝袜| aaaa欧美| 情事1991在线| 老司机深夜福利在线观看| 美女国内精品自产拍在线播放| 黄色片在线看| 亚洲精品久久久久久久久久久久 | 国产精品日韩精品在线播放| 日本精品视频在线| 不卡av免费观看| 欧美xxxx18性欧美| 日日夜夜精品一区| 在线看福利67194| 九色国产在线观看| 亚洲久久久久久久久久久| 欧性猛交ⅹxxx乱大交| 日韩欧美你懂的| 国产成人毛毛毛片| 91精品国产综合久久福利软件| 中文字幕a级片| 在线精品视频免费观看| 亚洲不卡视频在线观看| 精品人伦一区二区三区蜜桃网站| 久久久一二三区| 一区二区不卡在线视频 午夜欧美不卡在| 日韩精品123区| 亚洲天堂福利av| av成人免费网站| 亚洲女同一区二区| 黄色在线观看免费| 一区二区久久久久| 国产亚洲成人av| 亚洲影院理伦片| 日韩成人高清视频| 性做久久久久久免费观看欧美| 国产一级在线免费观看| 亚洲影视在线播放| 国产午夜福利精品| 五月开心婷婷久久| 伊人手机在线视频| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美亚洲国产怡红院影院| 中文字幕av网站| 91精品国产综合久久久久久久| 一级片aaaa| 日韩三级电影网址| 色婷婷av一区二区三区之红樱桃| 亚洲精品国产免费| 巨骚激情综合| 中文字幕精品av| 成人三级网址| 午夜精品三级视频福利| 国产免费不卡| 91免费看国产| 国产精品网在线观看| 久久精品久久精品国产大片| 国产精品三级| 伊人久久青草| 亚洲欧洲一级| 久久久精品三级| 国产精品综合视频| 精品人妻一区二区三区日产乱码卜 | 91免费在线观看网站| 国产日韩三级| 亚洲图片都市激情| 国产精品地址| 欧在线一二三四区| 国产精品自产自拍| 免费看黄色aaaaaa 片| 中文字幕一区二区三区不卡| 久久久久久久久艹| 色婷婷综合久久久中文字幕| 国产精品久久久久久久久久久久久久久久久久 | 精品视频久久| 欧美国产视频一区| 丝瓜av网站精品一区二区| 在线观看日本www| 久久先锋影音av鲁色资源网| 开心激情五月网| 精品国产乱码久久久久酒店| 91尤物国产福利在线观看| 亚洲国产福利在线| 麻豆av在线免费看| 欧美一级bbbbb性bbbb喷潮片| 青青在线精品| 久久视频在线观看中文字幕| 91精品国产成人观看| 国产精品视频一区二区三区四区五区| 久久精品国产免费| 国产精品久久不卡| 亚洲乱码中文字幕综合| 国产精品自拍第一页| 精品99久久久久久| gogo在线高清视频| 国产精品久久久久久久久久新婚| 久久综合五月婷婷| 一级一片免费播放| 奇米影视7777精品一区二区| 污污污www精品国产网站| 国产精品不卡一区二区三区| 欧美日韩综合一区二区三区| 精品久久人人做人人爽| 国产激情在线| 国产在线精品一区免费香蕉| 欧美精品第一区| 日本中文字幕网址| 国产福利一区在线| 熟女少妇a性色生活片毛片| 欧美自拍丝袜亚洲| 香蕉视频黄在线观看| 欧美激情网站在线观看| 国产精品色婷婷在线观看| 一区二区冒白浆视频| 丝袜亚洲另类欧美综合| 国精品无码人妻一区二区三区| 亚洲国产精品精华液网站| 亚洲成人中文字幕在线| 欧美精品少妇videofree| av一级久久| 日日噜噜噜夜夜爽爽| 美国毛片一区二区| 国产无遮挡在线观看| 欧美在线观看18| 成a人v在线播放| 国产精品久久久久久搜索| 国产在视频线精品视频www666| 国产精品视频一区二区三区四区五区 | 国产精品青青在线观看爽香蕉| 精品中文字幕一区二区三区av| 精品99在线视频| 久久久久久久久久看片| 国产一级免费视频| 亚洲色图35p| 91天天综合| 亚洲综合欧美日韩| 精品一区二区精品| 欧美性x x x| 日韩一区二区麻豆国产| av在线免费观看网址| 91精品综合久久| 午夜激情一区| 香港三日本8a三级少妇三级99 | 亚洲天堂中文在线| 久久五月天综合| 99a精品视频在线观看| 黄色大片在线免费看| 91蜜桃视频在线| 进去里视频在线观看| 最好看的2019年中文视频| 国产一区二区在线观| 欧美高清中文字幕| 99精品欧美一区二区三区综合在线| 特级做a爱片免费69| 国产亚洲欧洲黄色| 先锋影音一区二区| 成人免费a级片| 久久久另类综合| 亚洲天堂网视频| 久久久久国产精品www| 免费成人网www| 91亚洲精品久久久蜜桃借种| 亚洲午夜av在线| 国产一级免费在线观看| 91精品国产综合久久香蕉922| 国产精品mm| 色哟哟精品观看| 91精品国产综合久久小美女| a级片在线免费| 日韩国产精品一区二区| 国产在线播放一区三区四| www.av麻豆| 日韩视频在线一区| 久久久久久久久久久久久久久久久久久久| 色欲av无码一区二区人妻| 亚洲欧洲一区二区在线播放| 韩国av在线免费观看| 国产精品综合网站| 在线成人www免费观看视频| 亚洲色图第四色| 亚洲成人网在线观看| 精品裸体bbb| 青草青青在线视频| 国产精品免费久久久久| 少妇精品视频一区二区 | av无码精品一区二区三区宅噜噜| 91精品国产91久久久久久久久| 欧美电影免费播放| 中文字幕xxx|