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

OpenHarmony仿視頻播放器應(yīng)用-愛電影(二)

系統(tǒng) OpenHarmony
簡單來說頁面分成上下兩部分,上半部分是一個橫向滾動的banner,下半部分是電影資源的列表,列表中的一行兩列均分,每一個資源信息包括:電影資源的宣傳圖、電影名稱、演員、電影亮點(diǎn)。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

效果

??在線視頻??

接??上一篇??,閃屏頁面跳轉(zhuǎn)到主頁,接下來我們詳細(xì)的說說主頁開發(fā)涉及的內(nèi)容,首先我們來看下主頁是設(shè)計圖,如下:

#創(chuàng)作者激勵#OpenHarmony仿視頻播放器應(yīng)用-愛電影(二)-開源基礎(chǔ)軟件社區(qū)

簡單來說頁面分成上下兩部分,上半部分是一個橫向滾動的banner,下半部分是電影資源的列表,列表中的一行兩列均分,每一個資源信息包括:電影資源的宣傳圖、電影名稱、演員、電影亮點(diǎn)。

項目開發(fā)

開發(fā)環(huán)境

硬件平臺:DAYU2000 RK3568
系統(tǒng)版本:OpenHarmony 3.2 beta5
SDK:9(3.2.10.6)
IDE:DevEco Studio 3.1 Beta1 Build Version: 3.1.0.200, built on February 13, 2023

程序代碼

Index.ets

import { VideoDataSource } from '../model/VideoDataSource'
import { VideoData } from '../model/VideoData'
import { MockVideoData } from '../model/MockVideoData'
import router from '@ohos.router';
import { VideoListView } from '../view/VideoListView'
const TAG: string = 'Splash Index'
@Entry
@Component
struct Index {
@State bannerList: Array<VideoData> = []
@State videoList: Array<VideoData> = []
private scrollerForScroll: Scroller = new Scroller()
@State @Watch('scrollChange') scrollIndex: number = 0
@State opacity1: number = 0
aboutToAppear() {
this.initData()
router.clear()
}
scrollChange() {
if (this.scrollIndex === 0) {
this.scrollToAnimation(0, 0)
} else if (this.scrollIndex === 2) {
this.scrollToAnimation(0, 300)
}
}
scrollToAnimation(xOffset, yOffset) {
this.scrollerForScroll.scrollTo({
xOffset: xOffset,
yOffset: yOffset,
animation: {
duration: 3000,
curve: Curve.FastOutSlowIn
}
})
}
initData() {
this.bannerList = MockVideoData.getBannerList()
this.videoList = MockVideoData.getVideoList()
}
build() {
Column() {
Scroll(this.scrollerForScroll) {
Column() {
// banner
Swiper() {
LazyForEach(new VideoDataSource(this.bannerList), (item: VideoData) => {
Image(item.image)
.width('100%')
.height('100%')
.border({
radius: 20
})
.onClick(() => {
router.pushUrl({ url: 'pages/Playback',
params: {
video_data: item
} })
})
.objectFit(ImageFit.Fill)
}, item => item.id)
}
.width('100%')
.height(240)
.itemSpace(20)
.autoPlay(true)
.indicator(false)
.cachedCount(3)
.margin({
bottom: 20
})
VideoListView({
videoList: $videoList,
scrollIndex: $scrollIndex,
isBlackModule: false
})
}.width('100%')
}
.scrollBar(BarState.Off)
.scrollable(ScrollDirection.Vertical)
.scrollBarColor(Color.Gray)
.scrollBarWidth(30)
.edgeEffect(EdgeEffect.Spring)
}
.width('100%')
.height('100%')
.backgroundImage($r('app.media.main_bg'), ImageRepeat.XY)
.padding(20)
}
pageTransition() {
PageTransitionEnter({ duration: 1500,
type: RouteType.Push,
curve: Curve.Linear })
.opacity(this.opacity1)
.onEnter((type: RouteType, progress: number) => {
console.info(`${TAG} PageTransitionEnter onEnter type:${type} progress:${progress}`)
this.opacity1 = progress
})
}
}

開發(fā)詳解

1、電影數(shù)據(jù)

界面內(nèi)容需要通過數(shù)據(jù)進(jìn)行加載,目前沒有相關(guān)的電影云端,我們就先在本地mock出一些電影數(shù)據(jù),每個電影數(shù)據(jù)都應(yīng)該包含以下屬性,我們定義了一個類來表示:

VideoData.ets

export class VideoData {
id: string
name: string // 名稱
describe: string // 描述
resourceType: string // 資源類型 出品年限 類型
source:string // 來源
introduction: string // 介紹
uri: string | Resource // 資源地址
image: string | Resource // 資源圖片
actors: User[] //參演者
heat: number // 熱度
directs:User[] // 導(dǎo)演
grade:string // 評分
gradeNumber : string // 參與評分人數(shù)
}
export class User{
id: number
name: string
role: string
icon: string | Resource
}

2、構(gòu)建數(shù)據(jù)

溫馨提示:電影相關(guān)的數(shù)據(jù)是本地模擬,除了電影名稱和電影宣傳圖相關(guān),其他信息純屬虛構(gòu),如果你感興趣也可以自己構(gòu)建。

這個很簡單,就是根據(jù)VideoData所定義的數(shù)據(jù),構(gòu)建出首頁需要顯示的內(nèi)容,因?yàn)閙ock的數(shù)據(jù)都是自定義的,所以這里就帖部分代碼,如果你有興趣可以自行構(gòu)造,如下所示:

MockVideoData.ets

export class MockVideoData {
static getVideoList(): Array<VideoData> {
let data: Array<VideoData> = new Array()
// 電影
data.push(this.createVideoDataByImage('鐵道英雄', $r('app.media.v1')))
data.push(this.createVideoDataByImage('沙丘', $r('app.media.v2')))
data.push(this.createVideoDataByImage('那一夜我給你開過車', $r('app.media.v3')))
data.push(this.createVideoDataByImage('雷神2', $r('app.media.v4')))
data.push(this.createVideoDataByImage('大圣歸來', $r('app.media.v5')))
data.push(this.createVideoDataByImage('流浪地球', $r('app.media.v6')))
data.push(this.createVideoDataByImage('狄仁杰', $r('app.media.v7')))
data.push(this.createVideoDataByImage('獨(dú)行月球', $r('app.media.v8')))
data.push(this.createVideoDataByImage('消失的子彈', $r('app.media.v9')))
data.push(this.createVideoDataByImage('西游降魔篇', $r('app.media.v10')))
data.push(this.createVideoDataByImage('激戰(zhàn)', $r('app.media.v11')))
data.push(this.createVideoDataByImage('作妖轉(zhuǎn)', $r('app.media.v12')))
data.push(this.createVideoDataByImage('滅絕', $r('app.media.v13')))
data.push(this.createVideoDataByImage('獨(dú)行月球', $r('app.media.v14')))
data.push(this.createVideoDataByImage('超人·素人特工', $r('app.media.v15')))
data.push(this.createVideoDataByImage('戰(zhàn)狼2', $r('app.media.v16')))
data.push(this.createVideoDataByImage('四大名捕', $r('app.media.v17')))
data.push(this.createVideoDataByImage('無人區(qū)', $r('app.media.v18')))
data.push(this.createVideoDataByImage('邪不壓正', $r('app.media.v19')))
return data
}
private static createVideoDataByImage(_name, _image, uri?): VideoData {
if (typeof (uri) === 'undefined') {
uri = $rawfile('video_4.mp4')
}
return this.createVideoData(
_name,
'硬漢強(qiáng)力回歸',
'2023 / 動作 / 槍戰(zhàn)',
'愛電影',
'《邪不壓正》是由姜文編劇并執(zhí)導(dǎo),姜文、彭于晏、廖凡、周韻、許晴、澤田謙也等主演的動作喜劇電影。該片改編自張北海小說《俠隱》。講述在1937年\“七七事變\”爆發(fā)之前,北平城的“至暗時刻”,一個身負(fù)大恨、自美歸國的特工李天然,在國難之時滌蕩重重陰謀上演的一出終極復(fù)仇記。',
uri,
_image
)
}
private static createVideoData(_name, _describe, _resourceType, _source, _introduction, _uri, _image,): VideoData {
let vData: VideoData = new VideoData()
vData.id = UUIDUtils.getUUID()
vData.name = _name
vData.describe = _describe
vData.resourceType = _resourceType
vData.source = _source
vData.introduction = _introduction
vData.uri = _uri
vData.image = _image
vData.actors = []
let user1: User = new User()
user1.name = '吳京'
user1.role = '飾 吳曉曉'
user1.icon = $r('app.media.actor_02')
vData.actors.push(user1)
let user2: User = new User()
user2.name = '屈楚蕭'
user2.role = '飾 吳曉曉'
user2.icon = $r('app.media.actor_03')
vData.actors.push(user2)
let user3: User = new User()
user3.name = '吳京'
user3.role = '飾 吳曉曉'
user3.icon = $r('app.media.actor_02')
vData.actors.push(user3)
vData.heat = 89
vData.grade = '8.6'
vData.gradeNumber = '3.6萬'
vData.directs = []
for (let i = 0; i < 1; i++) {
let user: User = new User()
user.name = '戴維'
user.role = '導(dǎo)演'
user.icon = $r('app.media.actor_01')
vData.directs.push(user)
}
return vData
}


static getBannerList(): Array<VideoData> {
let data: Array<VideoData> = new Array()
// 構(gòu)建banner數(shù)據(jù),與構(gòu)建videoData類似
return data
}
}

3、banner

在Index.ets的aboutToAppear()函數(shù)中初始化數(shù)據(jù),通過MockVideoData.getBannerList()獲取到banner列表,使用Swiper滑塊組件實(shí)現(xiàn)自動輪播顯示。在Swiper容器中使用了LazyForEach懶加載的方式進(jìn)行子項的加載。簡單說明下LazyForEach懶加載機(jī)制,由于在長列表渲染中會涉及到大量的數(shù)據(jù)加載,如果處理不當(dāng)會導(dǎo)致資源占用影響性能,在ArkUI3.0針對這樣的情況提供了一種懶加載機(jī)制,它會自動根據(jù)具體的情況計算出適合渲染的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的按需加載,提升UI刷新效率。

4、電影列表

在Index.ets的aboutToAppear()函數(shù)中初始化數(shù)據(jù),通過MockVideoData.getVideoList()獲取到Video列表,因?yàn)殡娪傲斜淼牟季衷陧椖恐衅渌K也會使用到,所以這里將電影列表抽象出一個子組件VideoListView。

VideoListView.ets

/**
* 視頻列表
*/
import { VideoData } from '../model/VideoData'
import { VideoDataSource } from '../model/VideoDataSource'
import { VideoDataUtils } from '../utils/VideoDataUtils'
import router from '@ohos.router';
const TAG: string = 'VideoListView'
@Component
export struct VideoListView {
private scrollerForGrid: Scroller = new Scroller()
@Link videoList: Array<VideoData>
@Link scrollIndex: number
@Prop isBlackModule: boolean //是否為黑色模式
build() {
// 電影列表
Grid(this.scrollerForGrid) {
LazyForEach(new VideoDataSource(this.videoList), (item: VideoData) => {
GridItem() {
Column() {
Image(item.image)
.width(200)
.height(250)
.objectFit(ImageFit.Cover)
.border({
width: this.isBlackModule ? 0 : 1,
color: '#5a66b1',
radius: 10
})
Text(item.name)
.width(200)
.height(20)
.fontColor(this.isBlackModule ? Color.Black : Color.White)
.fontSize(16)
.maxLines(1)
.textOverflow({
overflow: TextOverflow.Ellipsis
})
.margin({
top: 10
})
Text(VideoDataUtils.getUser(item.actors))
.width(200)
.height(20)
.fontColor(this.isBlackModule ? $r('app.color.name_black') : $r('app.color.name_grey'))
.fontSize(12)
.maxLines(1)
.textOverflow({
overflow: TextOverflow.Ellipsis
})
Text(item.describe)
.width(200)
.height(20)
.fontColor(this.isBlackModule ? $r('app.color.describe_black') : $r('app.color.describe_grey'))
.fontSize(12)
.maxLines(1)
.textOverflow({
overflow: TextOverflow.Ellipsis
})
}.width('100%')
.margin({
bottom: 10
})
.onClick(() => {
router.pushUrl({ url: 'pages/Playback',
params: {
video_data: item
} }, router.RouterMode.Single)
})
}
}, item => item.id)
}
.columnsTemplate('1fr 1fr')
.columnsGap(10)
.editMode(true)
.cachedCount(6)
.width('100%')
.height('100%')
.border({
width: 0,
color: Color.White
})
.onScrollIndex((first: number) => {
console.info(`${TAG} onScrollIndex ${first}`)
this.scrollIndex = first
if (first === 0) {
this.scrollerForGrid.scrollToIndex(0)
}
})
}
}

使用Grid實(shí)現(xiàn)電影列表,由于電影列表屬于長列表數(shù)據(jù),所以這里也使用了LazyForEach懶加載機(jī)制進(jìn)行item子項的加載,最終通過import的方式引入到Index.ets頁面中,并在布局中添加此組件。

5、滾動頁面

首頁是電影列表頁,需要加載banner和電影列表,所以整體頁面都需要可滾動,因此在banner和視頻列表容器外添加了Scroll組件。

問題1:Scroll與Grid列表嵌套時,電影列表無法顯示完整,或者無法顯示banner。

如下所示:

#創(chuàng)作者激勵#OpenHarmony仿視頻播放器應(yīng)用-愛電影(二)-開源基礎(chǔ)軟件社區(qū)

為了描述清楚這個問題,我們將界面可以觸發(fā)滑動的區(qū)域分為banner部分和VideoList部分,根據(jù)滑動的觸發(fā)區(qū)域不同,進(jìn)行如下說明:

#創(chuàng)作者激勵#OpenHarmony仿視頻播放器應(yīng)用-愛電影(二)-開源基礎(chǔ)軟件社區(qū)

1、觸發(fā)滑動區(qū)域在VideoList,當(dāng)滑動到VideoList末尾時會出現(xiàn)最后一列的item只顯示了部分,滑動區(qū)域在VideoList的時候無論怎么向上滑動都無法顯示完整;

2、在1的場景下,觸發(fā)滑動區(qū)域在banner,并向上滑動,此時可以看到,頁面整體向上移動,VideoList中缺失的item部分可以正常顯示,banner劃出界面時,VideoList可以顯示完整;

3、在2的場景下,整個界面目前都是VideoList區(qū)域,VideoList已滑動到的最后,此時向下滑動,因?yàn)橛|發(fā)的區(qū)域是VideoList,所以整個VideoList向下滑動顯示,直到電影列表首項,由于整個頁面的可滑動區(qū)域都是VideoLIst,無法在觸發(fā)Scroll的滑動,所以banner無法顯示。

這個問題其實(shí)就是界面視圖高度計算和觸發(fā)滑動監(jiān)聽被消費(fèi)后無法再向上層傳遞導(dǎo)致,解決這個問題有多種方式,下面我介紹其中一種。

解決方案:Scroll組件中可以添加一個Scroller滑動組件的控制器,控制器可以控制組件的滾動,比如滾動的指定高度,或者指定的index,在Grid中也可以添加一個Scroller控制器進(jìn)行列表高度控制,在Grid還可以通過onScrollIndex()事件監(jiān)聽網(wǎng)格顯示的起始位置item發(fā)生變化,返回當(dāng)前的item坐標(biāo)。當(dāng)滑動區(qū)域在VideoList時,如果item坐標(biāo)發(fā)生了變化,就更新scrollIndex,在Index.ets中監(jiān)聽scrollIndex的變化,當(dāng)scrollIndex=0時表示已經(jīng)滑動到VideoList首項,此時再向下滑動時控制Scroll的控制器,讓Scroll滑動到(0,0)位置,也就是頁面頂部,這樣就可以顯示banner;當(dāng)scrollIndex=2時,表示VideoList向上滑動到第二列,此時設(shè)置外層Scroll容器的滑動高度,讓banner劃出界面,使得VideoList可以完整顯示。

實(shí)現(xiàn)核心代碼

1、Index.ets

import { VideoDataSource } from '../model/VideoDataSource'
import { VideoData } from '../model/VideoData'
import { MockVideoData } from '../model/MockVideoData'
import router from '@ohos.router';
import { VideoListView } from '../view/VideoListView'
const TAG: string = 'Splash Index'
@Entry
@Component
struct Index {
private scrollerForScroll: Scroller = new Scroller()
@State @Watch('scrollChange') scrollIndex: number = 0

scrollChange() {
if (this.scrollIndex === 0) {
this.scrollToAnimation(0, 0)
} else if (this.scrollIndex === 2) {
this.scrollToAnimation(0, 300)
}
}
scrollToAnimation(xOffset, yOffset) {
this.scrollerForScroll.scrollTo({
xOffset: xOffset,
yOffset: yOffset,
animation: {
duration: 3000,
curve: Curve.FastOutSlowIn
}
})
}

build() {
Column() {
Scroll(this.scrollerForScroll) {
Column() {
// banner
VideoListView({
videoList: $videoList,
scrollIndex: $scrollIndex,
isBlackModule: false
})
}.width('100%')
}
.scrollBar(BarState.Off)
.scrollable(ScrollDirection.Vertical)
.scrollBarColor(Color.Gray)
.scrollBarWidth(30)
.edgeEffect(EdgeEffect.Spring)
}
.width('100%')
.height('100%')
.backgroundImage($r('app.media.main_bg'), ImageRepeat.XY)
.padding(20)
}

}

2、VideoListView.ets

/**
* 視頻列表
*/
import { VideoData } from '../model/VideoData'
import { VideoDataSource } from '../model/VideoDataSource'
import { VideoDataUtils } from '../utils/VideoDataUtils'
import router from '@ohos.router';

const TAG: string = 'VideoListView'

@Component
export struct VideoListView {
private scrollerForGrid: Scroller = new Scroller()
@Link scrollIndex: number

build() {
// 電影列表
Grid(this.scrollerForGrid) {
LazyForEach(new VideoDataSource(this.videoList), (item: VideoData) => {
GridItem() {
// item
}.width('100%')
.margin({
bottom: 10
})
.onClick(() => {
router.pushUrl({ url: 'pages/Playback',
params: {
video_data: item
} }, router.RouterMode.Single)
})
}

}, item => item.id)
}
.columnsTemplate('1fr 1fr')
.columnsGap(10)
.editMode(true)
.cachedCount(6)
.width('100%')
.height('100%')
.border({
width: 0,
color: Color.White
})
.onScrollIndex((first: number) => {
console.info(`${TAG} onScrollIndex ${first}`)
this.scrollIndex = first
if (first === 0) {
this.scrollerForGrid.scrollToIndex(0)
}
})
}
}

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2023-03-28 09:38:34

開發(fā)應(yīng)用鴻蒙

2023-03-29 09:37:49

視頻播放器應(yīng)用鴻蒙

2023-03-29 09:32:15

視頻播放器應(yīng)用鴻蒙

2022-08-16 17:37:06

視頻播放器鴻蒙

2015-09-01 16:48:44

ios暴風(fēng)視頻播放器

2021-10-21 16:00:07

鴻蒙HarmonyOS應(yīng)用

2011-07-20 16:21:20

iPhone 視頻 播放器

2015-05-21 15:25:42

VLC播放器

2015-01-22 15:44:55

Android源碼音樂播放器

2022-06-21 14:41:38

播放器適配西瓜視頻

2021-10-19 14:27:07

鴻蒙HarmonyOS應(yīng)用

2022-11-12 08:26:04

VLC視頻播放器裁剪視頻

2018-05-25 14:37:58

2022-01-27 08:12:50

Potplayer播放器

2023-03-06 16:20:08

視頻播放器VLC

2023-08-26 19:07:40

VLC旋轉(zhuǎn)視頻

2011-06-13 09:33:04

2015-01-19 13:52:38

Android源碼多功能播放器

2012-06-04 13:44:08

2011-06-27 11:23:21

Qt 音樂播放器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

亚洲高清无码久久| 一区二区三区视频在线播放| 午夜精品久久久久久久久久久久久蜜桃| 国产精品视频3p| 欧美日韩国产一中文字不卡| 青青成人在线| 国内老熟妇对白hdxxxx| 亚洲专区一区| 日韩视频亚洲视频| www.美色吧.com| 成人在线免费av| 亚洲国产视频直播| 亚洲精品成人三区| 天天综合网在线| 精品一区二区综合| 777777777亚洲妇女| 永久免费未视频| 欧美重口另类| 91精品国产福利在线观看| 欧美国产激情视频| 菠萝菠萝蜜在线观看| 99久久亚洲一区二区三区青草 | 自拍视频一区二区| 国产成人精品一区二区三区视频 | 国产一区在线看| 51精品国产黑色丝袜高跟鞋| 极品久久久久久| 国产欧美日韩免费观看| 精品少妇一区二区三区视频免付费 | www.欧美com| 国产极品久久久久久久久波多结野| 一区二区三区精品视频在线| 亚洲电影一二三区| 亚洲日本香蕉视频| 高清shemale亚洲人妖| 国产欧美日韩中文字幕在线| 国产精品100| 亚洲午夜精品久久久久久app| 中文字幕日本欧美| 午夜理伦三级做爰电影| 另类图片第一页| 日韩精品一区二区三区视频在线观看 | 99久久久久久久久久| 97se亚洲国产一区二区三区| 欧美精品粉嫩高潮一区二区| 日韩一级片播放| 国模套图日韩精品一区二区| 天天操天天干天天综合网| 国产一区二区三区小说| 免费污视频在线| 亚洲综合在线视频| 成人av在线播放观看| av片在线观看永久免费| 亚洲欧美激情一区二区| 国产精品99久久久久久大便| 在线免费观看黄色av| 国产欧美一区二区精品秋霞影院| 欧美高清性xxxxhdvideosex| 青青草免费在线视频| 91免费小视频| 蜜桃导航-精品导航| 天天在线女人的天堂视频| 粉嫩av一区二区三区四区五区 | 国产一区二区黑人欧美xxxx| 日本aaa视频| 亚洲高清极品| 亚洲一级免费视频| 亚洲第一视频区| 99久久.com| 免费不卡在线观看av| 国产又黄又爽又无遮挡| 欧美精品成人| 性欧美视频videos6一9| 欧美亚洲另类小说| 免费久久99精品国产| 成人性生交大片免费看视频直播| 国产福利免费视频| www.日本不卡| 日本精品一区二区三区视频| jizz在线观看中文| 亚洲三级视频在线观看| 日韩精品一区二区在线视频| 少妇视频在线观看| 欧美羞羞免费网站| 国产九九九视频| 精品三级在线观看视频| 亚洲欧美一区二区三区久久| a一级免费视频| 亚洲天堂偷拍| 国产精品免费一区| 亚洲成a人片77777精品| 92国产精品观看| 亚洲免费视频一区| 秋霞在线午夜| 欧美三级在线看| 野花视频免费在线观看| 九九视频精品全部免费播放| 久久精品久久久久久| 国产一级做a爰片在线看免费| 美女国产一区| 亚洲wwwav| 青青久在线视频免费观看| 亚洲视频每日更新| 国产二区视频在线播放| **精品中文字幕一区二区三区| 精品剧情在线观看| 日本人亚洲人jjzzjjz| 亚洲午夜一级| 国产欧美久久久久久| 深爱五月激情五月| 亚洲欧美精品午睡沙发| 免费大片在线观看| 91精品久久久久久综合五月天 | 亚洲区一区二区三| 牛牛影视久久网| www.欧美免费| 中文字幕第15页| 国产一区二区福利视频| 欧洲亚洲一区二区三区四区五区| 一区二区三区伦理| 欧美午夜精品久久久久久孕妇| www.555国产精品免费| 色喇叭免费久久综合网| 欧美又大又粗又长| 日本黄视频在线观看| 国产精品久久久久9999吃药| 亚洲欧洲日产国码无码久久99| 精品视频在线观看免费观看| 中文字幕精品久久| 国产 日韩 欧美 在线| 国产经典欧美精品| 在线观看国产一区| 精品网站在线| 国产丝袜精品第一页| 久久精品久久国产| 国产二区国产一区在线观看| 亚洲图片小说在线| 巨胸喷奶水www久久久免费动漫| 亚洲国产欧美一区| 久久免费黄色网址| 国产精品一区二区91| 一本—道久久a久久精品蜜桃| 国产精品第一国产精品| 亚洲精品aⅴ中文字幕乱码| 中文字幕亚洲欧美日韩| 韩国av一区二区| 伊人久久大香线蕉av一区| 国产成人精品一区二三区在线观看| 精品一区二区三区四区在线| 全部毛片永久免费看| 91在线视频观看| 99爱视频在线| 国产精品一国产精品| 国产不卡精品视男人的天堂| 国自产拍在线网站网址视频| 色天天综合色天天久久| 一道本在线观看| 日日欢夜夜爽一区| 午夜精品美女久久久久av福利| 国产精品久久久久av电视剧| 一区二区三区精品99久久| 这里只有精品国产| 国产精品传媒视频| 三级网站免费看| 精品91在线| 国产视频99| 欧美一区久久久| 国产一区二区三区精品久久久| 国产精华7777777| 国产精品久久久久久久久久久免费看| 色国产在线视频| 亚洲91中文字幕无线码三区| 1卡2卡3卡精品视频| 久久www人成免费看片中文| 亚洲国产成人爱av在线播放| 日韩久久中文字幕| 中文字幕第一区第二区| 日韩av片免费观看| 好吊日精品视频| 麻豆av福利av久久av| 亚洲成人一区在线观看| xxx一区二区| 噜噜噜久久,亚洲精品国产品| 欧美视频免费在线| 波多野结衣欲乱| 国产成人av电影| 日本精品一区二区三区四区| 999成人网| 国精产品99永久一区一区| 欧美日韩亚洲国产| 蜜臀久久99精品久久久久久宅男 | 美女视频黄 久久| 97超碰人人爱| 夜夜躁狠狠躁日日躁2021日韩| 国产精品亚洲综合天堂夜夜| 牛牛精品在线视频| 亚洲一区二区久久| 黄色av免费观看| 欧美综合亚洲图片综合区| 毛片a片免费观看| 欧美国产精品一区二区| 国产一卡二卡三卡四卡| 老汉av免费一区二区三区| av女优在线播放| 久久影院一区| 麻豆成人在线播放| 日日夜夜精品视频| 国产精品久久久久久久一区探花 | 亚洲制服丝袜av| 女人十八毛片嫩草av| 成人h精品动漫一区二区三区| 午夜久久久精品| 奶水喷射视频一区| 毛片av在线播放| 欧美gayvideo| 欧美一级二级三级| 国产日韩三级| 亚洲专区中文字幕| 日本午夜精品久久久久| 欧美做爰性生交视频| 色爱综合区网| 久久亚洲精品网站| 国产黄色免费在线观看| 国产丝袜一区二区三区免费视频| 99热这里是精品| 欧美日韩在线播放一区| 尤物视频免费观看| 精品美女久久久久久免费| 五月天激情丁香| 国产精品久久午夜| 免费污网站在线观看| 99久久精品国产观看| 日本精品一二三| 国内精品视频一区二区三区八戒 | 国产精品99久久久久| 亚洲欧美自拍另类日韩| 日韩精品午夜视频| 成人小视频在线看| 国产九九精品| 免费看又黄又无码的网站| 亚洲国产精品一区| 男人添女荫道口女人有什么感觉| 欧美精品九九| 亚洲色婷婷久久精品av蜜桃| 91精品电影| 激情视频小说图片| 欧美激情第二页| 日韩精品久久一区二区| 在线成人亚洲| 乱人伦xxxx国语对白| 精品动漫3d一区二区三区免费| 日本精品福利视频| 亚洲国产导航| 欧美二区在线视频| 视频一区免费在线观看| 日本va中文字幕| 久久99国产精品成人| 一个色综合久久| 国产河南妇女毛片精品久久久| 三级黄色片免费观看| 成人午夜视频免费看| 亚洲中文字幕无码一区| 2022国产精品视频| 在线观看免费小视频| 国产精品久久久久影院亚瑟| 黄色a级片在线观看| 亚洲综合免费观看高清完整版| 国产亚洲精品av| 五月婷婷色综合| 无码人妻av免费一区二区三区| 欧美影院一区二区三区| 国产又粗又长又黄| 精品国精品国产| 在线观看不卡的av| 丁香花在线电影| 一本久道久久综合狠狠爱| 国产乱子伦精品| 欧美福利在线播放网址导航| 欧美大陆一区二区| 久久影院一区| 精品久久久久久无码中文野结衣| 合欧美一区二区三区| 成人免费毛片网| 精品亚洲免费视频| 一级黄色免费视频| 国产欧美日产一区| 91视频免费在线看| 色婷婷激情久久| 最好看的日本字幕mv视频大全| 欧美一区二区三区免费| 午夜小视频在线播放| 色av中文字幕一区| 国产精品69xx| 国产精品美女呻吟| 51精品国产| 日本免费高清一区二区| 亚洲最新色图| 日韩中文字幕二区| 国产成人免费视频一区| 亚洲成人黄色av| 亚洲一卡二卡三卡四卡五卡| 中文字幕xxxx| 欧美不卡视频一区| wwwww在线观看免费视频| 久久久久久免费精品| 日韩免费在线电影| 欧美精品在线一区| 欧美激情1区| 亚洲免费999| 久久先锋影音av鲁色资源网| 国产少妇在线观看| 欧美制服丝袜第一页| 日本韩国免费观看| 九九热视频这里只有精品| 美女网站视频一区| 久草精品电影| 欧美视频官网| 网站在线你懂的| 中文无字幕一区二区三区| 国产高潮久久久| 亚洲国产精品悠悠久久琪琪| 91精品国产91久久久久久青草| 国产精品看片资源| 蜜臀久久99精品久久一区二区| 国产日韩av网站| 国产精品亚洲专一区二区三区 | 激情五月宗合网| 国产麻豆91精品| 来吧亚洲综合网| 欧美日韩在线播放三区四区| 高清日韩av电影| 日产精品99久久久久久| 卡一精品卡二卡三网站乱码| 欧美人与动牲交xxxxbbbb| 久久99久久99| 潮喷失禁大喷水aⅴ无码| 欧美无砖专区一中文字| 国产香蕉在线| 国产精品福利小视频| 国产欧美日韩免费观看| 亚洲视频在线a| 国产日产欧美一区| 无码无套少妇毛多18pxxxx| 亚洲毛茸茸少妇高潮呻吟| 中文字幕21页在线看| 久久久久久草| 久久高清一区| 亚洲一区二区自偷自拍 | 一卡二卡三卡在线| 中文字幕亚洲国产| 国产成+人+综合+亚洲欧美| 一区二区三区av| 激情久久五月天| 国产三级国产精品国产国在线观看| 欧美一区午夜精品| 秋霞在线午夜| 精品乱码一区| 老司机久久99久久精品播放免费| 国产三级av在线播放| 在线免费视频一区二区| 亚洲1卡2卡3卡4卡乱码精品| 日韩www.| 4444在线观看| 国产91精品一区二区| 午夜偷拍福利视频| 日韩国产在线播放| 欧美日韩在线精品一区二区三区激情综合| 日本欧美色综合网站免费| 美女免费视频一区| 欧美精品久久久久性色| 亚洲福利视频在线| 日韩一区二区三区在线免费观看| 偷拍视频一区二区| 国产一区不卡精品| 国产性生活网站| 国产亚洲一区二区精品| 成人影院网站ww555久久精品| 大西瓜av在线| 久久久久亚洲蜜桃| 国产日本精品视频| 91国内精品久久| 四季av一区二区三区免费观看| 中文国产在线观看| 欧美午夜片在线免费观看| a黄色在线观看| av一区二区三区在线观看| 男人天堂欧美日韩| 91 在线视频| 精品一区二区三区三区| 精品中文字幕一区二区三区四区 | 国产精品永久入口久久久| 久久一区国产| 妺妺窝人体色www婷婷| 亚洲全黄一级网站| 日日夜夜精品视频| 看欧美ab黄色大片视频免费 | 国内精品伊人| 人人妻人人添人人爽欧美一区| 国产精品私人影院| 亚洲欧美综合在线观看|