日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

【音乐App】—— Vue-music 项目学习笔记:播放器内置组件开发(一)

發布時間:2025/4/16 vue 109 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【音乐App】—— Vue-music 项目学习笔记:播放器内置组件开发(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:以下內容均為學習慕課網高級實戰課程的實踐爬坑筆記。

項目github地址:https://github.com/66Web/ljq_vue_music,歡迎Star。


播放暫停前進后退
一、播放器Vuex數據設計
  • 需求: 播放器可以通過歌手詳情列表、歌單詳情列表、排行榜、搜索結果多種組件打開,因此播放器數據一定是全局的
  • state.js目錄下:定義數據 import {playMode} from '@/common/js/config'const state = {singer: {},playing: false, //播放狀態fullScreen: false, //播放器展開方式:全屏或收起playlist: [], //播放列表(隨機模式下與順序列表不同)sequenceList: [], //順序播放列表mode: playMode.sequence, //播放模式: 順序、循環、隨機currentIndex: -1 //當前播放歌曲的index(當前播放歌曲為playlist[index]) }
  • common->js目錄下:創建config.js配置項目相關 //播放器播放模式: 順序、循環、隨機 export const playMode = {sequence: 0, loop: 1,random: 2 }
  • getter.js目錄下:數據映射(類似于計算屬性) export const playing = state => state.playing export const fullScreen = state => state.fullScreen export const playlist = state => state.playlist export const sequenceList = state => state.sequenceList export const mode = state => state.mode export const currentIndex = state => state.currentIndexexport const currentSong = (state) => {return state.playlist[state.currentIndex] || {} }

    組件中可以通過mapgetters拿到這些數據

  • mutaion-type.js目錄下:定義事件類型字符串常量 export const SET_PLAYING_STATE = 'SET_PLAYING_STATE' export const SET_FULL_SCREEN = 'SET_FULL_SCREEN' export const SET_PLAYLIST = 'SET_PLAYLIST' export const SET_SEQUENCE_LIST = 'SET_SEQUENCE_LIST' export const SET_PLAY_MODE = 'SET_PLAY_MODE' export const SET_CURRENT_INDEX = 'SET_CURRENT_INDEX'

    mutation中都是動作,前綴加SET、UPDATE等

  • mutaion.js目錄下:操作state const mutations = {[types.SET_SINGER](state, singer){state.singer = singer},[types.SET_PLAYING_STATE](state, flag){state.playing = flag},[types.SET_FULL_SCREEN](state, flag){state.fullScreen = flag},[types.SET_PLAYLIST](state, list){state.playlist = list},[types.SET_SEQUENCE_LIST](state, list){state.sequenceList = list},[types.SET_PLAY_MODE](state, mode){state.mode = mode},[types.SET_CURRENT_INDEX](state, index){state.currentIndex = index} }
二、播放器Vuex的相關應用
  • components->player目錄下:創建player.vue
  • 基礎DOM: <div class="normal-player">播放器 </div> <div class="mini-player"></div>
    • ?App.vue中應用player組件:因為它不是任何一個路由相關組件,而是應用相關播放器,切換路由不會影響播放器的播放 <player></player>
    • player.vue中獲取數據:控制播放器的顯示隱藏 import {mapGetters} from 'vuex'computed: {...mapGetters(['fullScreen','playlist']) }

      通過v-show判斷播放列表有內容時,顯示播放器,依據fullScreen控制顯示不同的播放器

      <div class="player" v-show="playlist.length"><div class="normal-player" v-show="fullScreen">播放器</div><div class="mini-player" v-show="!fullScreen"></div> </div>
    • song-list.vue中添加點擊播放事件:基礎組件不寫業務邏輯,只派發事件并傳遞相關數據 @click="selectItem(song, index) selectItem(item, index){this.$emit('select', item, index) }

      子組件行為,只依賴本身相關,不依賴外部調用組件的需求,傳出的數據可以不都使用

    • music-list.vue中監聽select事件 <song-list :songs="songs" @select="selectItem"></song-list>
  • 設置數據,提交mutations:需要在一個動作中多次修改mutations,在actions.js中封裝 import * as types from './mutation-types'export const selectPlay = function ({commit, state}, {list, index}) {//commit方法提交mutation commit(types.SET_SEQUENCE_LIST, list)commit(types.SET_PLAYLIST, list)commit(types.SET_CURRENT_INDEX, index)commit(types.SET_FULL_SCREEN, true)commit(types.SET_PLAYING_STATE, true) }
  • music-list.vue中代理actions,并在methods中調用: import {mapActions} from 'vuex' selectItem(item, index){this.selectPlay({list: this.songs,index}) } ...mapActions(['selectPlay' ])
  • 三、播放器基礎樣式及歌曲數據的應用
    • ?通過mapGetter獲取到currentSong數據填入到DOM中:點擊切換播放器展開收起,需要修改fullScreen import {mapGetters, mapMutations} from 'vuex'methods: {back() {//錯誤做法: this.fullScreen = false//正確做法: 通過mapMutations寫入 this.setFullScreen(false)},open() {this.setFullScreen(true)},...mapMutations({setFullScreen: 'SET_FULL_SCREEN'}) }
    四、播放器展開收起動畫
    • 需求:normal-player背景圖片漸隱漸現,展開時頭部標題從頂部下落,底部按鈕從底部回彈,收起時相反
    • 實現:動畫使用<transition>,回彈效果使用貝塞爾曲線
  • normal-player設置動畫<transition name="normal"> &.normal-enter-active, &.normal-leave-activetransition: all 0.4s.top, .bottomtransition: all 0.4s cubic-bezier(0.86, 0.18, 0.82, 1.32) &.normal-enter, &.normal-leave-toopacity: 0.toptransform: translate3d(0, -100px, 0).bottomtransform: translate3d(0, 100px, 0)
  • mini-player設置動畫<transition name="mini"> &.mini-enter-active, &.mini-leave-activetransition: all 0.4s &.mini-enter, &.mini-leave-toopacity: 0
    • 需求:展開時,mini-player的專輯圖片從原始位置飛入CD圖片位置,同時有一個放大縮小效果, 對應頂部和底部的回彈;收起時,normal-player的CD圖片從原始位置直接落入mini-player的專輯圖片位置
    • 實現:Vue提供了javascript事件鉤子,在相關的鉤子中定義CSS3動畫即可
  • 利用第三方庫:create-keyframe-animation 使用js編寫CSS3動畫
  • github地址:https://github.com/HenrikJoreteg/create-keyframe-animation
  • 安裝:? npm install create-keyframe-animation --save  
  • 引入: import animations from 'create-keyframe-animation' <transition name="normal" @enter="enter" @after-enter="afterEnter" @leave="leave" @after-leave="afterLeave">
  • methods中封裝函數_getPosAndScale獲取初始位置及縮放尺寸: (計算以中心點為準) _getPosAndScale(){ const targetWidth = 40 //mini-player icon寬度const width = window.innerWidth * 0.8 //cd-wrapper寬度const paddingLeft = 40 const paddingTop = 80const paddingBottom = 30 //mini-player icon中心距底部位置const scale = targetWidth / widthconst x = -(window.innerWidth / 2 - paddingLeft) //X軸方向移動的距離const y = window.innerHeight - paddingTop - width / 2 - paddingBottomreturn {x,y, scale} }
  • 給cd-wrapper添加引用: <div class="cd-wrapper" ref="cdWrapper">
  • 定義事件鉤子方法: //事件鉤子:創建CSS3動畫 enter(el, done){const {x, y, scale} = this._getPosAndScale()let animation = {0: {transform: `translate3d(${x}px, ${y}px, 0) scale(${scale})`},60: {transform: `translate3d(0, 0, 0) scale(1.1)`}, 100: {transform: `translate3d(0, 0, 0) scale(1)`}}animations.registerAnimation({name: 'move',animation,presets: {duration: 400,easing: 'linear'}})animations.runAnimation(this.$refs.cdWrapper, 'move', done) }, afterEnter() {animations.unregisterAnimation('move')this.$refs.cdWrapper.style.animation = '' }, leave(el, done){this.$refs.cdWrapper.style.transition = 'all 0.4s'const {x, y, scale} = this._getPosAndScale()this.$refs.cdWrapper.style[transform] = `translate3d(${x}px, ${y}px, 0) scale(${scale})`this.$refs.cdWrapper.addEventListener('transitionend', done) }, afterLeave(){this.$refs.cdWrapper.style.transition = ''this.$refs.cdWrapper.style[transform] = '' }
  • transform屬性使用prefix自動添加前綴: import {prefixStyle} from '@/common/js/dom' const transform = prefixStyle('transform')
  • 五、播放器歌曲播放功能實現--H5 audio
    • 添加H5 <audio>實現歌曲的播放 <audio :src="currentSong.url" ref="audio"></audio>
    • 在watch中監聽currentSong的變化,播放歌曲 watch: {currentSong() {this.$nextTick(() => { //確保DOM已存在this.$refs.audio.play()})} }
    • 給按鈕添加點擊事件,控制播放暫停 <i class="icon-play" @click="togglePlaying"></i>
  • 通過mapGetters獲得playing播放狀態
  • 通過mapMutations定義setPlayingState方法修改mutation: setPlayingState: 'SET_PLAYING_STATE'
  • 定義togglePlaying()修改mutation:傳遞!playing為payload參數 togglePlaying(){this.setPlayingState(!this.playing) }
  • 在watch中監聽playing的變化,執行播放器的播放或暫停: playing(newPlaying){const audio = this.$refs.audiothis.$nextTick(() => { //確保DOM已存在newPlaying ? audio.play() : audio.pause()}) }
  • 坑:調用audio標簽的play()或pause(),都必須是在DOM audio已經存在的情況下,否則就會報錯
  • 解決: 在this.$nextTick(() => { })中調用
    • 圖標樣式隨播放暫停改變:動態綁定class屬性playIcon,替換掉原原來的icon-play <i :class="playIcon" @click="togglePlaying"></i> playIcon() {return this.playing ? 'icon-pause' : 'icon-play' }
    • CD 旋轉動畫效果
  • 動態綁定class屬性cdCls: <div class="cd" :class="cdCls"> cdCls() {return this.playing ? 'play' : 'pause' }
  • CSS樣式: &.playanimation: rotate 20s linear infinite &.pauseanimation-play-state: paused@keyframes rotate0%transform: rotate(0)100%transform: rotate(360deg)
  • 六、播放器歌曲前進后退功能實現
    • 給按鈕添加點擊事件 <i class="icon-prev" @click="prev"></i> <i class="icon-next" @click="next"></i>
    • 通過mapGetters獲得currentIndex當前歌曲index

    • 通過mapMutations定義setCurrentIndex方法修改mutation setCurrentIndex: 'SET_CURRENT_INDEX'
    • 定義prev()和next()修改mutation: 限制index邊界 next() {let index = this.currentIndex + 1if(index === this.playlist.length){index = 0}this.setCurrentIndex(index) }, prev() {let index = this.currentIndex - 1if(index === -1){index = this.playlist.length - 1}this.setCurrentIndex(index) }
    • 坑:前進或后退后會自動開始播放,但播放按鈕的樣式沒有改變
    • 解決:添加判斷,如果當前是暫停狀態, 切換為播放 if(!this.playing){this.togglePlaying() }
    • 坑:切換太快會出現報錯:Uncaught (in promise) DOMException: The play() request was interrupted by a new load request
    • 原因:切換太快audio 數據還沒有加載好
    • 解決:audio W3C文檔中記錄,audio有兩個事件:
  • 當歌曲地址請求到時,會派發canplay事件;
  • 當沒有請求到或請求錯誤時,會派發error事件 <audio :src="currentSong.url" ref="audio" @canplay="ready" @error="error"></audio>

    在data中維護一個標志位數據songReady,通過ready方法控制只有歌曲數據請求好后,才可以播放

    data() {return {songReady: false} } ready() {this.songReady = true }

    在prev()、next()和togglePlaying中添加判斷,當歌曲數據還沒有請求好的時候,不播放

    if(!this.songReady){return }

    其中prev()和next()中歌曲發生改變了之后,重置songReady為false,便于下一次ready()

    this.songReady = false
    • 坑:當沒有網絡,或切換歌曲的url有問題時,songReady就一直為false,所有播放的邏輯就執行不了了
    • 解決: error()中也使songReady為true,這樣既可以保證播放功能的正常使用,也可以保證快速點擊時不報錯
    • 優化: 給按鈕添加disable的樣式 <div class="icon i-left" :class="disableCls"> <div class="icon i-center" :class="disableCls"> <div class="icon i-right" :class="disableCls"> disableCls() {return this.songReady ? '' : 'disable' } &.disablecolor: $color-theme-d
    七、播放器時間獲取
    • data中維護currentTime當前播放時間:currentTime: 0 (audio的可讀寫屬性)
    • audio中監聽時間更新事件: @timeupdate="updateTime"
    • methods中定義updateTime()獲取當前時間的時間戳,并封裝format函數格式化: //獲取播放時間 updateTime(e) {this.currentTime = e.target.currentTime //時間戳 }, format(interval){interval = interval | 0 //向下取整const minute = interval / 60 | 0const second = this._pad(interval % 60)return `${minute}:${second}` }
    • 坑:秒一開始顯示個位只有一位數字,體驗不好
    • 解決:定義_pad()用0補位 _pad(num, n = 2){ //用0補位,補2位字符串長度let len = num.toString().lengthwhile(len < n){num = '0' + numlen++}return num }
    • 格式化后的數據填入DOM,顯示當前播放時間和總時間: <span class="time time-l">{{format(currentTime)}}</span> <span class="time time-r">{{format(currentSong.duration)}}</span>
    八、播放器progress-bar進度條組件實現
    • base->progress-bar目錄下:創建progress-bar.vue

    ? ? ?? 需求:進度條和小球隨著播放時間的變化而變化

    • 實現:
  • 從父組件接收props參數:進度比percent(player.vue中通過計算屬性得到)
  • watch中監聽percent,通過計算進度條總長度和偏移量,動態設置進度條的width和小球的transform const progressBtnWidth = 16 //通過樣式設置得到 props: {percent: {type: Number,default: 0} }, watch: {percent(newPercent) {if(newPercent >= 0){const barWidth = this.$refs.progressBar.clientWidth - progressBtnWidthconst offsetWidth = newPercent * barWidththis.$refs.progress.style.width = `${offsetWidth}px` //進度條偏移this.$refs.progressBtn.style[transform] = `translate3d(${offsetWidth}px, 0, 0)` //小球偏移 }} }
  • ? ? ? ?需求:拖動進度條控制歌曲播放進度

    • 實現:
  • 監聽touchstart、touchmove、touchend事件,阻止瀏覽器默認行為; <div class="progress-btn-wrapper" ref="progressBtn"@touchstart.prevent="progressTouchStart"@touchmove.prevent="progressTouchMove"@touchend="progressTouchEnd">
  • created()中創建touch空對象,用于掛載共享數據; created(){this.touch = {} }
  • methods中定義3個方法,通過計算拖動偏移量得到進度條總偏移量,并派發事件給父組件: progressTouchStart(e) {this.touch.initiated = true //標志位 表示初始化this.touch.startX = e.touches[0].pageX //當前拖動點X軸位置this.touch.left = this.$refs.progress.clientWidth //當前進度條位置 }, progressTouchMove(e) {if(!this.touch.initiated){return}const barWidth = this.$refs.progressBar.clientWidth - progressBtnWidthconst deltaX = e.touches[0].pageX - this.touch.startX //拖動偏移量const offsetWidth = Math.min(barWidth, Math.max(0, this.touch.left + deltaX))this._offset(offsetWidth) }, progressTouchEnd() {this.touch.initiated = falsethis._triggerPercent() }, _triggerPercent(){const barWidth = this.$refs.progressBar.clientWidth - progressBtnWidthconst percent = this.$refs.progress.clientWidth / barWidththis.$emit('percentChange', percent) }, _offset(offsetWidth){this.$refs.progress.style.width = `${offsetWidth}px` //進度條偏移this.$refs.progressBtn.style[transform] = `translate3d(${offsetWidth}px, 0, 0)` //小球偏移 }
  • watch中添加條件設置拖動時,進度條不隨歌曲當前進度而變化: watch: {percent(newPercent) {if(newPercent >= 0 && !this.touch.initiated){const barWidth = this.$refs.progressBar.clientWidth - progressBtnWidthconst offsetWidth = newPercent * barWidththis._offset(offsetWidth)}} }
  • player.vue組件中監聽percentChange事件,將改變后的播放時間寫入currentTime,并設置改變后自動播放: @percentChange="onProgressBarChange" onProgressBarChange(percent) {this.$refs.audio.currentTime = this.currentSong.duration * percentif(!this.playing){this.togglePlaying()} }
  • ? ? ?? 需求:點擊進度條任意位置,改變歌曲播放進度

    • 實現:添加點擊事件,通過react.left計算得到偏移量,設置進度條偏移,并派發事件改變歌曲播放時間 <div class="progress-bar" ref="progressBar" @click="progressClick"> progressClick(e) {const rect = this.$refs.progressBar.getBoundingClientRect()const offsetWidth = e.pageX - rect.leftthis._offset(offsetWidth)this._triggerPercent() }
    九、播放器progress-circle圓形進度條實現 -- SVG
    • base->progress-circle目錄下:創建progress-circle.vue
  • 使用SVG實現圓: <div class="progress-circle"><!-- viewBox 視口位置 與半徑、寬高相關 stroke-dasharray 描邊虛線 周長2πr stroke-dashoffset 描邊偏移 未描邊部分--><svg :width="radius" :height="radius" viewBox="0 0 100 100" version="1.1"xmlns="http://www.w3.org/2000/svg"><circle class="progress-backgroud" r="50" cx="50" cy="50" fill="transparent"/><circle class="progress-bar" r="50" cx="50" cy="50" fill="transparent" :stroke-dasharray="dashArray" :stroke-dashoffset="dashOffset"/></svg><slot></slot> </div>
  • 需要從父組件接收props參數:視口半徑、當前歌曲進度百分比 props: {radius: {type: Number,default: 100},percent: {type: Number,default: 0} }
    • player.vue中使圓形進度條包裹mini-player的播放按鈕,并傳入半徑和百分比: <progress-circle :radius="radius" :percent="percent"><!-- radius: 32 --><i :class="miniIcon" @click.stop.prevent="togglePlaying" class="icon-mini"></i> </progress-circle>
    • progress-circle.vue中維護數據dashArray,并使用computed計算出當前進度對應的偏移量: data() {return {dashArray: Math.PI * 100 //圓周長 描邊總長 } }, computed: {dashOffset() { return (1 - this.percent) * this.dashArray //描邊偏移量 } }

    ?注:項目來自慕課網

    轉載于:https://www.cnblogs.com/ljq66/p/10167951.html

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的【音乐App】—— Vue-music 项目学习笔记:播放器内置组件开发(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    五月婷婷视频在线 | 日韩一区二区三区在线观看 | 99久久国产免费看 | 蜜桃视频色 | 国产又黄又爽无遮挡 | 五月在线| 伊人狠狠色 | 亚洲精品欧美视频 | 91免费黄视频 | 91黄色免费看 | 成人免费在线观看电影 | 久久69av| 国产在线观看免费av | av大全免费在线观看 | 色综合久久88色综合天天 | 亚洲伊人第一页 | 精品视频久久久 | 97色免费视频 | 国产精品 日韩 欧美 | 国产精品专区在线观看 | 黄色视屏av | 911精品美国片911久久久 | 99产精品成人啪免费网站 | 在线观看成人网 | 国产精品一区二区三区在线 | 在线v| 久碰视频在线观看 | 天干啦夜天干天干在线线 | 97热在线观看 | 在线观看完整版 | 激情开心| 亚洲国产精品999 | 日韩久久精品一区二区 | 五月视频 | 亚洲精品免费在线观看 | 国产97av | 韩国一区在线 | 中文字幕九九 | 中文不卡视频在线 | 日本成人中文字幕在线观看 | 一区二区三区久久 | 日韩一级黄色片 | 日韩成人精品 | 国产在线国偷精品产拍 | 天天爽夜夜操 | 精品国内自产拍在线观看视频 | 日韩av成人在线观看 | 久久久免费看视频 | 国产精品久久久久久久久久 | 欧美中文字幕第一页 | 国产精品99视频 | 久久久免费看视频 | 久久综合婷婷国产二区高清 | 亚洲乱码精品久久久 | 在线免费观看羞羞视频 | 永久中文字幕 | 亚洲视频免费在线看 | 四虎永久免费在线观看 | 中文字幕在线视频一区二区 | 国产精品99久久免费黑人 | 久久精精品视频 | 国产中文字幕在线播放 | 九九视频精品在线 | 亚洲aⅴ在线观看 | 国产在线高清精品 | 伊人网综合在线观看 | 天天综合操 | 亚洲国产精品人久久电影 | 成人av在线观 | 日韩久久影院 | 四虎影视成人永久免费观看亚洲欧美 | 91精彩视频| 亚洲视频456 | 一区免费观看 | 成人一级电影在线观看 | 久草剧场| 免费国产在线精品 | 日本精品久久久久中文字幕 | 日本高清免费中文字幕 | 久久国产欧美日韩 | 欧美精品三级 | 久草视频观看 | 天天综合网久久综合网 | 91chinese在线| 伊人春色电影网 | 91麻豆精品国产91久久久无需广告 | 国产欧美在线一区二区三区 | 国产视频资源在线观看 | 中文字幕在线观 | 日韩xxxxxxxxx | 综合色综合 | 久久99精品久久久久婷婷 | 亚洲欧美在线视频免费 | 久久免费试看 | 色av资源网 | 天天干中文字幕 | 日p视频 | 狠狠的干狠狠的操 | 丁香 久久 综合 | 国产原创在线 | 亚洲精品tv久久久久久久久久 | 三级视频日韩 | 91久久国产综合精品女同国语 | 国产精品黑丝在线观看 | 日韩欧美网址 | 成人av资源网站 | 高清久久久| 黄色资源在线观看 | 国产精品美女在线观看 | 国产永久免费观看 | 999久久久免费精品国产 | 毛片基地黄久久久久久天堂 | 国产色一区 | 欧美一区二区在线刺激视频 | 国产裸体无遮挡 | 波多野结衣视频一区 | 久久99精品国产一区二区三区 | 又大又硬又黄又爽视频在线观看 | 久久伊人国产精品 | 日本精品一区二区 | 不卡电影一区二区三区 | 欧美精品免费一区二区 | 久久久精品午夜 | 国产成人精品av在线观 | 在线看片一区 | 国产视频久久久久 | 在线国产能看的 | 欧美一区二区精品在线 | 在线观看中文字幕第一页 | 夜夜操夜夜干 | 91精品国产91热久久久做人人 | 在线免费观看黄网站 | 免费av成人在线 | av中文字幕剧情 | www.亚洲精品在线 | 亚洲粉嫩av| 免费在线观看亚洲视频 | 日韩系列 | 日日夜夜精品视频天天综合网 | 色播99 | 成人黄色毛片 | 国产日韩欧美网站 | 91视频com | 日韩电影久久 | 日本成人免费在线观看 | 99久久精品费精品 | 97av.com| 久久亚洲综合色 | 国产性天天综合网 | 国产成人综合精品 | 99精品国产视频 | 国产视频一区二区在线播放 | 国产精品中文字幕在线播放 | 国产99久久久国产精品 | 91精品国产高清自在线观看 | 国产午夜一级毛片 | 亚洲成人av电影在线 | 国产a国产a国产a | 欧美美女视频在线观看 | 婷婷在线不卡 | 天天亚洲 | 国产精品99免费看 | 精品久久久久久久久中文字幕 | 天天射天天射天天 | 日本午夜在线观看 | 免费观看一级成人毛片 | 成人久久久久久久久久 | 免费三级黄色 | 国产精品欧美精品 | 成人精品一区二区三区中文字幕 | 热久久免费国产视频 | 在线观看你懂的网址 | 亚洲精品玖玖玖av在线看 | 碰超人人 | 国产中文伊人 | 免费在线观看一级片 | 久久无码精品一区二区三区 | 亚在线播放中文视频 | 婷婷六月天综合 | 超碰成人网| 国产色一区| 欧美日韩xx | 日韩免费网站 | 久久久国产视频 | 国产午夜一区 | 国产精品免费久久久久久 | 中文字幕 国产视频 | 在线视频 国产 日韩 | 中文一区在线 | 香蕉在线观看视频 | 黄色影院在线观看 | 综合色综合色 | 伊人网av| 色婷av| 国产精品女主播一区二区三区 | 久久天堂亚洲 | www.com.黄 | 中文字幕在线观看完整版 | 欧美日韩久久一区 | 欧美久久99| 国产亚洲激情视频在线 | 日韩av中文字幕在线免费观看 | 五月天狠狠操 | 亚洲激情在线播放 | 欧美乱淫视频 | 国产精品美女久久久久久久网站 | 色爽网站| 日韩欧美精品一区 | 天天干天天草 | 夜色成人av| 久久综合之合合综合久久 | 五月婷婷开心 | 免费看片网站91 | 国产在线观看二区 | 欧美 另类 交 | 午夜丰满寂寞少妇精品 | 中文字幕高清视频 | 欧美一级性 | 国产亚洲精品久久久久久移动网络 | 欧美亚洲国产一卡 | 亚洲精品中文字幕视频 | 最新国产福利 | 国产精品毛片一区二区三区 | 91理论电影 | 成人在线播放视频 | 精品国产一区二区三区噜噜噜 | 久久国产精品99久久久久久老狼 | 日韩一区二区三 | 国产人成免费视频 | 999毛片| 亚洲在线黄色 | 激情欧美日韩一区二区 | 韩日精品在线 | 久久综合五月婷婷 | 日韩精品中文字幕在线观看 | 亚洲精品18日本一区app | 久久一二区 | 在线精品视频在线观看高清 | 三级黄色在线观看 | 欧美一级特黄aaaaaa大片在线观看 | 婷婷 综合 色 | 亚洲国产精品推荐 | 国产综合精品一区二区三区 | 国产在线永久 | 国产一级h | 亚洲国产中文字幕在线视频综合 | 成人亚洲精品久久久久 | 在线电影 一区 | 午夜性福利| 天天天天天天天操 | 国产超碰在线观看 | 中文字幕在线观看网 | 麻豆视频观看 | 毛片网站在线 | 夜夜爽夜夜操 | 久久久久成人精品免费播放动漫 | 国产视频在线看 | 欧美日韩不卡在线观看 | 色国产在线 | 久久er99热精品一区二区 | 亚洲日本一区二区在线 | 特及黄色片 | 欧美日性视频 | 成人作爱视频 | 中文字幕免费观看视频 | 字幕网资源站中文字幕 | 免费电影一区二区三区 | 91在线免费播放视频 | 免费看片网站91 | 午夜精品电影一区二区在线 | 日韩精品视频一二三 | 久久99精品久久只有精品 | 久久久久久黄色 | 精品在线观看免费 | 欧美另类视频 | 狠狠色狠狠色 | 探花视频免费观看高清视频 | 一区二区三区免费在线观看视频 | 天天搞夜夜骑 | 日韩视频一区二区三区在线播放免费观看 | 欧美日韩18| 日韩精品视频免费看 | 亚洲国产欧美一区二区三区丁香婷 | 一区电影| 成人av视屏 | 国产黄色免费在线观看 | 婷婷在线看 | 丁香狠狠 | 91在线观看欧美日韩 | 久久精品久久久精品美女 | 免费看黄在线观看 | 国产精品久久久久久久久蜜臀 | 欧美热久久| 国产亚洲一区二区三区 | 狠狠干.com| 日韩在线观看电影 | 日韩一区二区三区免费视频 | 一级淫片在线观看 | 天天玩天天干天天操 | 久久久不卡影院 | 在线观看视频你懂 | 国产又黄又爽又猛视频日本 | 蜜臀久久99精品久久久无需会员 | 日韩va亚洲va欧美va久久 | 奇米7777狠狠狠琪琪视频 | 国产精品久久久 | 国内综合精品午夜久久资源 | 四虎影视成人精品国库在线观看 | 91福利国产在线观看 | av色综合网 | 麻豆综合网| av在线电影网站 | 97电影在线观看 | 午夜黄色一级片 | 欧美a级在线播放 | 国产精品麻豆一区二区三区 | 欧美激情精品久久久久久免费印度 | 亚州人成在线播放 | 久久一及片 | 国产精品视频地址 | 国产精品视频在线观看 | 97超碰人人模人人人爽人人爱 | 国产免费人成xvideos视频 | 亚洲国产激情 | 国产黄在线 | 国产麻豆剧果冻传媒视频播放量 | 国产视频91在线 | 人人爽爽人人 | 蜜臀av性久久久久蜜臀av | 国产九九九视频 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 激情欧美一区二区三区 | 国产成人免费 | 91在线区 | 国产99区| 国产视频精品网 | 日韩成人在线一区二区 | 亚洲国产精品va在线看黑人动漫 | 国产成人精品av在线观 | 麻豆久久一区二区 | 国产麻豆果冻传媒在线观看 | av一区二区在线观看中文字幕 | 丁香六月婷婷激情 | 99精品在线播放 | 国产日产欧美在线观看 | 97综合视频 | a黄色影院 | 香蕉视频导航 | 免费观看第二部31集 | 六月丁香激情综合 | 福利一区在线 | 国产成人亚洲精品自产在线 | 亚洲一区二区精品3399 | 亚洲一区二区三区精品在线观看 | 91精品一区国产高清在线gif | 免费色视频网站 | 欧美综合色 | 91香蕉视频在线下载 | av中文字幕网址 | 欧美日韩精品在线 | 欧美一级免费高清 | 999精品在线| 免费开视频 | 国产精品av免费观看 | 亚洲一区二区三区91 | 婷婷日韩 | 亚洲男男gⅴgay双龙 | 成人黄色影片在线 | 天天操狠狠操网站 | 国产一卡久久电影永久 | 久久综合九色综合欧美就去吻 | 中国一级片在线观看 | 精品久久久久国产免费第一页 | 97成人精品 | 黄色日视频| 欧美日韩在线观看一区二区 | 国产va精品免费观看 | 色婷婷中文 | 欧美怡红院 | 天天干人人插 | 中文字幕在线播放一区二区 | 国产精品白丝jk白祙 | 色av婷婷 | 五月天综合色激情 | 日韩高清www | 嫩小bbbb摸bbb摸bbb| 9999免费视频 | 久久系列| 国产一级性生活 | 毛片99 | 国产原创av片 | 97超碰在线视| 综合色综合色 | 99视频+国产日韩欧美 | 手机在线中文字幕 | 少妇超碰在线 | 99视频播放 | 亚洲女裸体 | 九色视频网 | 免费a v网站 | 成人免费xxx在线观看 | 正在播放一区 | 97精品国产97久久久久久久久久久久 | a黄色影院 | 久久草在线视频国产 | 国产色小视频 | 亚洲观看黄色网 | 91在线色| 国产又黄又猛又粗 | 国产中文在线字幕 | 99久久9| 午夜婷婷在线观看 | 夜夜视频欧洲 | 黄色一级免费 | 国产精品久久久久久久久久久久午夜 | 亚洲国产精品成人av | 国产精品综合久久 | 九九精品无码 | 国产黄色大全 | 九月婷婷色 | 五月天婷婷在线播放 | 国产精品一区二区三区电影 | 日韩在线首页 | 欧美日韩国产在线一区 | 欧美一级片在线观看视频 | 欧美性网站| av中文字幕在线电影 | 国产精品24小时在线观看 | 亚洲精品乱码久久久久久写真 | 欧美日韩国产综合一区二区 | 天堂av免费观看 | 字幕网在线观看 | 欧美成年人在线观看 | 亚洲色五月 | 福利在线看片 | 高清不卡一区二区三区 | 丁香六月五月婷婷 | 亚洲欧美视频在线播放 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 国产91在线播放 | 久久公开视频 | 亚洲视频六区 | 99久久久久免费精品国产 | 日韩精品视频在线免费观看 | 国产高清黄色 | 黄av资源 | 国产高清视频免费在线观看 | 久久理论视频 | 婷婷色网视频在线播放 | 成人久久久精品国产乱码一区二区 | 久久免费国产精品1 | 国产福利91精品一区二区三区 | 五月激情六月丁香 | 久久综合九色99 | 成人性生交大片免费看中文网站 | 新版资源中文在线观看 | 久久精品在线免费观看 | 国产视频一区二区在线观看 | 人成在线免费视频 | 免费福利视频导航 | 99热手机在线观看 | 欧美日韩99 | 成人av电影网址 | 久视频在线 | 日日精品 | 黄色毛片一级 | 免费视频xnxx com| 九九热免费精品视频 | 五月婷婷操 | 日韩专区av | 精品国产片 | 中文 一区二区 | 天天操天天舔天天干 | 欧美视频日韩 | 在线91av| 丝袜美腿在线播放 | 日韩理论电影在线观看 | 精品一区二区影视 | 中文字幕在线免费看线人 | 亚洲伊人天堂 | www.色午夜,com | 99热精品国产一区二区在线观看 | 亚洲理论在线观看 | 久久中文视频 | 国产高清综合 | 欧美在线a视频 | 久久久综合精品 | 国产高清视频免费最新在线 | 久久精品国产第一区二区三区 | 久久毛片高清国产 | 欧美超碰在线 | 夜夜操狠狠干 | 国产一区精品在线观看 | 色视频网页 | 午夜精品电影一区二区在线 | 能在线观看的日韩av | 亚洲国产wwwccc36天堂 | 久久线视频 | 91九色pron| 精品视频123区在线观看 | 色天天综合久久久久综合片 | 精品国产成人av | 久久国产精品精品国产色婷婷 | 黄色特一级| 日韩经典一区二区三区 | 久久综合久久久 | 91免费的视频在线播放 | 91成人看片| 99爱爱| 亚洲午夜小视频 | 午夜精品久久久久久久99热影院 | 欧美久久精品 | 97激情影院 | 手机成人av在线 | 99精品国产视频 | 久久99热久久99精品 | 91少妇精拍在线播放 | 99久久综合国产精品二区 | 香蕉久久久久 | 国产经典av | 国产精品久久久久久久久软件 | 在线观看aaa | www.超碰| 日韩三级精品 | 色综合中文综合网 | 精品亚洲男同gayvideo网站 | 精品亚洲男同gayvideo网站 | 婷婷中文在线 | 国产99色 | 人人干免费 | 在线观看视频h | 久久伊人操 | 国产成人精品av在线 | 久久久久国产成人免费精品免费 | 亚洲欧洲av | 国产精品6 | 亚洲欧美日韩不卡 | 人人爽人人爽人人片 | 免费激情网 | 日本三级不卡视频 | 国产原创av片 | 国产主播大尺度精品福利免费 | 懂色av一区二区在线播放 | 色婷婷av一区 | 久久精品视频在线观看免费 | 日本精品二区 | 99精品国产在热久久 | 91精品视频一区 | 国产精品国产三级国产专区53 | 午夜99| 丁香婷婷综合色啪 | 成x99人av在线www | 五月天久久狠狠 | 婷婷国产v亚洲v欧美久久 | 麻豆一精品传二传媒短视频 | 国内精品久久久久影院一蜜桃 | 成人午夜av电影 | 欧美日韩一区二区三区在线观看视频 | 免费在线观看亚洲视频 | 91在线色 | 久久久五月天 | 在线看岛国av | avhd高清在线谜片 | 国内精品久久久久 | 久久久免费精品 | 久久久久久97三级 | 久久久久久久久综合 | 亚洲二区精品 | 人人爽影院| 国产一二三四在线视频 | 射综合网 | 亚洲成人影音 | 九九九热 | 久久99国产一区二区三区 | 亚洲精品成人av在线 | 九色免费视频 | 人人精久| 99精品国产兔费观看久久99 | .国产精品成人自产拍在线观看6 | 人人舔人人射 | 亚州国产精品久久久 | 成人av高清在线 | 久久人人爽人人片 | 中文字幕久久亚洲 | 99精品观看 | 999久久a精品合区久久久 | 国产中的精品av小宝探花 | 免费在线一区二区 | av成人免费在线看 | 午夜精品剧场 | 天天做夜夜做 | 欧美日韩网站 | 久久69精品久久久久久久电影好 | 最新av免费在线 | 国产999精品久久久久久绿帽 | 日操操| 中文在线免费观看 | 日韩 在线观看 | 二区三区在线 | 91中文字幕一区 | 国产成人精品久 | 国内精品久久久久影院一蜜桃 | 欧美一级电影片 | 国产午夜精品久久 | 国精产品999国精产 久久久久 | 精品一区电影国产 | 欧美激情精品久久久 | 亚洲精品资源 | 国产午夜影院 | 视频福利在线观看 | 最近中文字幕国语免费av | 日韩在线观看高清 | 国产一级片一区二区三区 | 中文字幕在线看人 | 日韩一区正在播放 | 国产在线视频一区二区 | 9在线观看免费高清完整版在线观看明 | 中文字幕专区高清在线观看 | 久久国产精品久久w女人spa | 欧美日比视频 | v片在线播放 | 香蕉久久国产 | 成年人免费在线看 | 九九久久久 | 一区二区三区久久精品 | av亚洲产国偷v产偷v自拍小说 | 久草在线资源观看 | 亚洲一区二区视频在线播放 | 国产中文字幕在线播放 | 97在线视| av成人免费在线观看 | 黄色aaa级片| 日韩欧美xxxx | 免费毛片aaaaaa| 91丨九色丨蝌蚪丨老版 | 99久久精品免费看国产一区二区三区 | 91爱在线 | 亚洲精品日韩av | 婷婷五天天在线视频 | av高清免费在线 | 精品在线观看一区二区 | 91麻豆精品国产91久久久使用方法 | 97高清视频 | 日免费视频| 高清av免费看 | 日本黄色免费在线观看 | 91精品久久久久久综合五月天 | 九九久久精品 | 日日夜夜噜噜噜 | 99中文字幕在线观看 | 成人av久久| 成年人在线免费视频观看 | 欧美另类一二三四区 | 999久久久久久久久6666 | 九九免费在线观看视频 | 9ⅰ精品久久久久久久久中文字幕 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美激情视频在线观看免费 | 婷婷五天天在线视频 | 91精品国产高清自在线观看 | 麻豆91小视频 | 欧美一级日韩免费不卡 | 一区二区三区免费在线播放 | 久久一视频 | 天天色成人网 | 在线观看深夜福利 | 天堂av免费观看 | 成人av.com| 亚洲一区二区91 | 99理论片 | 久久久久国产精品www | 日韩av成人免费看 | 国产一区在线观看视频 | 久久久91精品国产 | 天天色天天干天天色 | 国产精品 中文在线 | 国产午夜精品理论片在线 | 美女久久久 | 91在线精品观看 | 高清一区二区三区 | 黄色成人av网址 | 午夜婷婷在线观看 | 色诱亚洲精品久久久久久 | www.日韩免费 | 国产一区91| av免费播放 | 黄污网站在线 | 亚洲aaa毛片 | 亚洲精品国产精品国自 | 国产成人一区二区三区在线观看 | 97精品国产一二三产区 | 在线中文视频 | 日本黄色大片儿 | 鲁一鲁影院 | 婷婷丁香导航 | 色综合天天 | 九九久久国产精品 | 亚洲欧美在线观看视频 | 免费在线观看日韩 | 国产剧情亚洲 | 中文在线a天堂 | 青青看片 | 免费观看的av | 日日夜夜综合网 | 亚洲免费av在线 | 欧洲av在线 | 精品影院一区二区久久久 | 欧美激情精品久久久久久免费印度 | 九九久久影院 | 五月天色婷婷丁香 | 日韩在线中文字幕 | 九热精品 | 精品国产中文字幕 | bbb搡bbb爽爽爽 | 激情五月婷婷 | 久草视频在线免费 | 国产.精品.日韩.另类.中文.在线.播放 | 麻豆91在线播放 | 国产中文字幕网 | 亚洲精品视频在线观看视频 | 午夜12点 | 天天操狠狠操 | 超碰人人在线观看 | 日韩欧美精品一区二区 | 亚洲高清在线精品 | 国产精品电影一区 | 日日草天天草 | 欧美小视频在线观看 | 久久一区精品 | 深爱激情综合 | www.com操| 亚洲色综合 | 日韩免费观看av | 国产精品久久一区二区三区不卡 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 五月天视频网站 | 国产精品高潮呻吟久久久久 | 欧美激情第八页 | 国产xxxx做受性欧美88 | 超碰国产在线观看 | 99日韩精品| 精品欧美一区二区在线观看 | 欧美激情视频一二区 | 免费a级毛片在线看 | 欧美尹人 | 色婷婷国产在线 | av看片网| 成年人免费观看在线视频 | 天天爽天天射 | 国产日韩欧美在线观看视频 | 欧美在线观看小视频 | 国产精品porn | 在线观看中文字幕 | 久久婷婷激情 | 中文字幕在线网址 | 久久久久国产精品一区二区 | 在线精品亚洲一区二区 | 五月婷婷一级片 | 日韩免费| 日日干夜夜骑 | 91丨九色丨首页 | 精品视频亚洲 | 免费日韩一区 | 天天综合人人 | 91中文字幕在线播放 | 香蕉97视频观看在线观看 | 最近中文字幕大全中文字幕免费 | 色吊丝在线永久观看最新版本 | 一级欧美一级日韩 | 婷婷色资源 | 99久久精品免费看国产四区 | 中文字幕av免费 | 久久精品国产亚洲 | 日韩中文字幕在线观看 | 手机看片99 | 午夜少妇一区二区三区 | 黄网站免费久久 | 天天做日日做天天爽视频免费 | 久草在线资源免费 | 免费观看一区二区 | 一区二区三区在线观看免费 | 国产一区在线不卡 | 日韩黄色在线电影 | 久久久久国产成人精品亚洲午夜 | 精品久久久久久亚洲综合网 | 国产精品久久久久久久久久久久久久 | 91免费观看视频网站 | 国产成人精品免高潮在线观看 | 国产精品成人av电影 | 夜夜夜夜夜夜操 | 狠狠综合久久av | 99视频在线免费 | 国产一区二区久久久 | 久久久蜜桃一区二区 | 国产香蕉视频在线播放 | 操操综合网 | 日韩欧美有码在线 | 成人黄色片免费 | 国产美女精品视频免费观看 | 国产精品免费观看在线 | 天天激情站 | 婷婷综合视频 | 国产剧情一区二区在线观看 | 中文字幕在线成人 | 欧美精品免费在线观看 | 国产午夜精品一区二区三区在线观看 | 亚洲国产日韩在线 | 波多野结衣电影一区二区三区 | 国产成人精品综合 | 久久国产综合视频 | 在线播放视频一区 | 丁香资源影视免费观看 | 日韩成人免费电影 | 午夜成人免费电影 | 日韩av高潮 | 91经典在线 | 成人免费av电影 | 国产亚洲综合性久久久影院 | 欧美性春潮| 黄毛片在线观看 | 欧美精品国产综合久久 | 国产一级免费观看 | 国产精品欧美一区二区三区不卡 | 波多野结衣在线视频免费观看 | 国产精品自产拍在线观看 | 免费福利小视频 | 人人草网站| 91重口视频 | 亚洲视频axxx | 精品资源在线 | 深爱激情五月综合 | 国产精品九九视频 | 一区二区三区免费在线 | 国产成人香蕉 | av线上看| 欧美有色| 国产精品久久久久久久av大片 | 五月婷婷一区二区三区 | 一区二区三区日韩视频在线观看 | 欧美成年黄网站色视频 | 手机看片99 | 色播亚洲婷婷 | 一区二区三区四区在线 | 精品一区二区久久久久久久网站 | 久久久人 | 亚洲国内精品 | 日产乱码一二三区别在线 | 欧美一二区视频 | 97超碰资源站 | 欧美aaa一级 | 超碰99在线 | 天天躁天天操 | 欧美高清视频不卡网 | 在线观看日韩免费视频 | 女人18毛片a级毛片一区二区 | 午夜视频99| 欧美日韩国产免费视频 | 久久精品国产亚洲精品 | 日韩一区二区三区免费电影 | 九九九视频精品 | 九色福利视频 | 欧美一级片免费播放 | 狠狠干干 | 日韩中文字幕免费电影 | av黄免费看 | 天天综合网天天综合色 | 欧美久久综合 | 激情欧美一区二区三区 | 亚洲国产精久久久久久久 | 国产精品麻豆99久久久久久 | 黄色小说视频在线 | 69xxxx欧美 | 91综合色| 久久一区精品 | 午夜精品久久久久久久爽 | 亚洲在线视频网站 | 欧美最爽乱淫视频播放 | 国产福利资源 | 日韩免费三区 | 婷婷色婷婷 | 久久精品99北条麻妃 | 精品专区一区二区 | 黄p网站在线观看 | bbbb操bbbb| 欧美精品三级在线观看 | 亚洲九九精品 | 九九日韩 | 亚洲精品中文字幕在线观看 | 国产无套一区二区三区久久 | 日韩免费视频线观看 | 久久激情日本aⅴ | 欧美精品一区二区三区四区在线 | 国内小视频 | www.com黄| 国产精品 日韩 欧美 | 人成电影网| 综合激情网... | 日韩精品视频在线观看网址 | 日韩精品五月天 | 综合国产视频 | 黄色一级大片在线观看 | 久久tv| 日一日干一干 | 日本精品小视频 | 亚洲视频精品在线 | 日韩理论片在线 | 国产一区二区三区高清播放 | 欧美性色综合 | 欧美成a人片在线观看久 | 精品欧美乱码久久久久久 | 久久久99精品免费观看乱色 | 九九在线高清精品视频 | 日韩高清dvd | 一区二区三区在线免费观看视频 | 亚洲专区免费观看 | 久久人人爽人人片 | 丁香综合激情 | 福利视频区 | 久久免费大片 | 亚洲国内在线 | 日本公妇在线观看高清 | 五月婷婷在线观看 | 九九热在线精品视频 | 久久一区二区三区超碰国产精品 | 日韩午夜大片 | 丁香婷婷基地 | 精品一区二区av | 日韩aⅴ视频 | 日日夜夜国产 | 日本一区二区三区免费观看 | 99精品视频免费观看 | 天天色官网 | 国产成人av网 | 96国产精品视频 | 国产不卡片 | 国产亚洲精品久久久久久大师 | 在线精品视频免费播放 | 狠狠干夜夜操天天爽 | 蜜桃视频日韩 | 国内成人综合 | 99爱这里只有精品 | 亚洲精品乱码久久久久久蜜桃欧美 | 96精品在线 | 国产精品国产精品 | 在线观看免费一区 | 久久99国产精品免费网站 | 成人黄色中文字幕 | 欧美一级视频一区 | 国产在线不卡 | 五月婷婷视频在线 | 激情影院在线观看 | 91手机在线看片 | 日本电影久久 | 婷婷亚洲五月色综合 | 国产美女精品在线 | 亚洲精品视频在 | 亚洲一级电影在线观看 | 国产一区二区在线免费播放 | 色中色亚洲 | 欧美色综合久久 | 国产日韩精品久久 | 亚洲美女视频在线观看 | 五月天综合网站 | 一区二区三区国产精品 | 日韩最新av在线 | 97国产一区二区 | 久久综合成人网 | 久久久亚洲精品 | 欧美另类高清 | 91九色精品女同系列 | 国产v在线观看 | 蜜桃av综合网 | 中文字幕欧美日韩va免费视频 | av超碰在线| 在线观看中文字幕亚洲 | 午夜久久久精品 | 黄色特一级片 | 亚洲国产精品免费 | 国产一级在线观看视频 | 精品1区2区| 久久精品国产精品亚洲 | 亚洲精品在线观看中文字幕 | 亚洲涩涩网站 | 在线看欧美 | 免费在线观看国产精品 | 一区二区欧美在线观看 | 丁香导航 | 久久精品久久国产 | 成人一级电影在线观看 | 色综合天天色综合 | 99精品观看 | 天天色天天搞 | 国产亚洲精品久久网站 | 国内精品久久久久久久久久清纯 | 大片网站久久 | 久久艹国产 | 欧美激情在线网站 | 色中色综合 |