久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

SpringBoot+阿里云OSS實現在線視頻播放的示例

瀏覽:97日期:2023-04-05 17:52:26

阿里云 OSS 是一種云存儲技術,你可以理解為云盤,我們的目標是將視頻存儲到云端,然后在前端讀取并播放視頻。

OSS

首先登陸首頁,創建一個存儲桶:https://oss.console.aliyun.com

SpringBoot+阿里云OSS實現在線視頻播放的示例

然后找到讀寫權限:

SpringBoot+阿里云OSS實現在線視頻播放的示例

將讀寫權限設置為公共讀即可:

SpringBoot+阿里云OSS實現在線視頻播放的示例

在 RAM 中新建一個用戶:

SpringBoot+阿里云OSS實現在線視頻播放的示例

為其添加權限,選擇 OSS 的權限:

SpringBoot+阿里云OSS實現在線視頻播放的示例

然后點進去這個用戶,找到 AccessKey:

SpringBoot+阿里云OSS實現在線視頻播放的示例

創建之后記下來 secret ,因為他只出現一次,如果沒記住也沒事,可以重新創建新的 key。

下面開始編寫服務端代碼:

POM

<!-- 阿里云oss --><dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version></dependency>

package com.lsu.file.controller.admin;import com.alibaba.fastjson.JSONObject;import com.aliyun.oss.OSS;import com.aliyun.oss.OSSClientBuilder;import com.aliyun.oss.model.AppendObjectRequest;import com.aliyun.oss.model.AppendObjectResult;import com.aliyun.oss.model.ObjectMetadata;import com.aliyun.oss.model.PutObjectRequest;import com.lsu.server.dto.FileDto;import com.lsu.server.dto.ResponseDto;import com.lsu.server.enums.FileUseEnum;import com.lsu.server.service.FileService;import com.lsu.server.util.Base64ToMultipartFile;import com.lsu.server.util.UuidUtil;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.*;import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource;import java.io.ByteArrayInputStream;/** * @author wsuo */@RestController@RequestMapping('/admin')public class OssController { private static final Logger LOG = LoggerFactory.getLogger(FileController.class); @Value('${oss.accessKeyId}') private String accessKeyId; @Value('${oss.accessKeySecret}') private String accessKeySecret; @Value('${oss.endpoint}') private String endpoint; @Value('${oss.bucket}') private String bucket; @Value('${oss.domain}') private String ossDomain; public static final String BUSINESS_NAME = 'OSS文件上傳'; @Resource private FileService fileService; @PostMapping('/oss-append') public ResponseDto<FileDto> fileUpload(@RequestBody FileDto fileDto) throws Exception { LOG.info('上傳文件開始'); String use = fileDto.getUse(); String key = fileDto.getKey(); String suffix = fileDto.getSuffix(); Integer shardIndex = fileDto.getShardIndex(); Integer shardSize = fileDto.getShardSize(); String shardBase64 = fileDto.getShard(); MultipartFile shard = Base64ToMultipartFile.base64ToMultipart(shardBase64); FileUseEnum useEnum = FileUseEnum.getByCode(use); String dir = useEnum.name().toLowerCase(); String path = dir +'/' +key +'.' +suffix; // 創建OSSClient實例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); ObjectMetadata meta = new ObjectMetadata(); // 指定上傳的內容類型。 meta.setContentType('text/plain'); // 通過AppendObjectRequest設置多個參數。 AppendObjectRequest appendObjectRequest = new AppendObjectRequest(bucket, path, new ByteArrayInputStream(shard.getBytes()), meta); appendObjectRequest.setPosition((long) ((shardIndex - 1) * shardSize)); AppendObjectResult appendObjectResult = ossClient.appendObject(appendObjectRequest); // 文件的64位CRC值。此值根據ECMA-182標準計算得出。 System.out.println(appendObjectResult.getObjectCRC()); System.out.println(JSONObject.toJSONString(appendObjectResult)); ossClient.shutdown(); LOG.info('保存文件記錄開始'); fileDto.setPath(path); fileService.save(fileDto); ResponseDto<FileDto> responseDto = new ResponseDto<>(); fileDto.setPath(ossDomain + path); responseDto.setContent(fileDto); return responseDto; } @PostMapping('/oss-simple') public ResponseDto<FileDto> fileUpload(@RequestParam MultipartFile file, String use) throws Exception { LOG.info('上傳文件開始'); FileUseEnum useEnum = FileUseEnum.getByCode(use); String key = UuidUtil.getShortUuid(); String fileName = file.getOriginalFilename(); String suffix = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase(); String dir = useEnum.name().toLowerCase(); String path = dir + '/' + key + '.' + suffix; // 創建OSSClient實例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, path, new ByteArrayInputStream(file.getBytes())); ossClient.putObject(putObjectRequest); ResponseDto<FileDto> responseDto = new ResponseDto<>(); FileDto fileDto = new FileDto(); fileDto.setPath(ossDomain + path); responseDto.setContent(fileDto); return responseDto; }}

這部分內容可以參考阿里云的幫助手冊:https://help.aliyun.com/document_detail/32011.html?spm=a2c4g.11174283.6.915.443b7da2mfhbKq

上面寫的是兩個接口:

追加上傳:/oss-append 簡單上傳:/oss-simple

注意這里的參數都已經在 yml 文件中定義了:

SpringBoot+阿里云OSS實現在線視頻播放的示例

上面的 KeyId 和 KeySecret 就是之前在創建用戶時給的那兩個,填上就行了。

在前端我們就可以發送請求獲取數據,注意這里的對象是我自定義的,大家可以根據項目需求自行設置。

_this.$ajax.post(process.env.VUE_APP_SERVER + ’/file/admin/oss-simple’, formData).then(response => { Loading.hide(); let resp = response.data; _this.afterUpload(resp); // 清空原來控件中的值 $('#' + _this.inputId + '-input').val('');})

視頻點播

VOD 是另一種視頻存儲的形式,它的功能更豐。阿里云視頻點播(VOD)是集音視頻上傳、自動化轉碼處理、媒體資源管理、分發加速于一體的全鏈路音視頻點播服務。

我們同樣需要一個 VOD 的用戶,給它賦予 VOD 的權限:

SpringBoot+阿里云OSS實現在線視頻播放的示例

SDK 的使用可以參考文檔:https://help.aliyun.com/document_detail/61063.html?spm=a2c4g.11186623.6.921.418f192bTDCIJN

我們可以在轉碼組設置自己的模板,然后通過 ID 在代碼中使用:

SpringBoot+阿里云OSS實現在線視頻播放的示例

上傳視頻比較簡單,和 OSS 很像,但是播放視頻要多一個條件,在獲取播放鏈接之前要先取得權限認證,所以下面單獨寫了一個 /get-auth/{vod} 接口,其中的參數就是 vod 的 ID,這個 ID 在我們上傳視頻之后會作為返回值返回的。

package com.lsu.file.controller.admin;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.aliyun.oss.OSSClient;import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.vod.model.v20170321.CreateUploadVideoResponse;import com.aliyuncs.vod.model.v20170321.GetMezzanineInfoResponse;import com.aliyuncs.vod.model.v20170321.GetVideoPlayAuthResponse;import com.lsu.server.dto.FileDto;import com.lsu.server.dto.ResponseDto;import com.lsu.server.enums.FileUseEnum;import com.lsu.server.service.FileService;import com.lsu.server.util.Base64ToMultipartFile;import com.lsu.server.util.VodUtil;import org.apache.commons.codec.binary.Base64;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.*;import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource;/** * @author wsuo */@RestController@RequestMapping('/admin')public class VodController { private static final Logger LOG = LoggerFactory.getLogger(FileController.class); @Value('${vod.accessKeyId}') private String accessKeyId; @Value('${vod.accessKeySecret}') private String accessKeySecret; public static final String BUSINESS_NAME = 'VOD視頻上傳'; @Resource private FileService fileService; @PostMapping('/vod') public ResponseDto<FileDto> fileUpload(@RequestBody FileDto fileDto) throws Exception { String use = fileDto.getUse(); String key = fileDto.getKey(); String suffix = fileDto.getSuffix(); Integer shardIndex = fileDto.getShardIndex(); Integer shardSize = fileDto.getShardSize(); String shardBase64 = fileDto.getShard(); MultipartFile shard = Base64ToMultipartFile.base64ToMultipart(shardBase64); FileUseEnum useEnum = FileUseEnum.getByCode(use); String dir = useEnum.name().toLowerCase(); String path = dir +'/' +key +'.' +suffix; //需要上傳到VOD的本地視頻文件的完整路徑,需要包含文件擴展名 String vod = ''; String fileUrl = ''; try { // 初始化VOD客戶端并獲取上傳地址和憑證 DefaultAcsClient vodClient = VodUtil.initVodClient(accessKeyId, accessKeySecret); CreateUploadVideoResponse createUploadVideoResponse = VodUtil.createUploadVideo(vodClient, path); // 執行成功會返回VideoId、UploadAddress和UploadAuth vod = createUploadVideoResponse.getVideoId(); JSONObject uploadAuth = JSONObject.parseObject( Base64.decodeBase64(createUploadVideoResponse.getUploadAuth()), JSONObject.class); JSONObject uploadAddress = JSONObject.parseObject( Base64.decodeBase64(createUploadVideoResponse.getUploadAddress()), JSONObject.class); // 使用UploadAuth和UploadAddress初始化OSS客戶端 OSSClient ossClient = VodUtil.initOssClient(uploadAuth, uploadAddress); // 上傳文件,注意是同步上傳會阻塞等待,耗時與文件大小和網絡上行帶寬有關 if (shard != null) {VodUtil.uploadLocalFile(ossClient, uploadAddress, shard.getInputStream()); } System.out.println('上傳視頻成功, vod : ' + vod); GetMezzanineInfoResponse response = VodUtil.getMezzanineInfoResponse(vodClient, vod); System.out.println('獲取視頻信息 response = ' + JSON.toJSONString(response)); fileUrl = response.getMezzanine().getFileURL(); ossClient.shutdown(); } catch (Exception e) { System.out.println('上傳視頻失敗, ErrorMessage : ' + e.getLocalizedMessage()); } fileDto.setPath(path); fileDto.setVod(vod); fileService.save(fileDto); ResponseDto<FileDto> responseDto = new ResponseDto<>(); fileDto.setPath(fileUrl); responseDto.setContent(fileDto); return responseDto; } @RequestMapping(value = '/get-auth/{vod}', method = RequestMethod.GET) public ResponseDto<String> getAuth(@PathVariable String vod) { LOG.info('獲取播放授權開始'); ResponseDto<String> responseDto = new ResponseDto<>(); DefaultAcsClient client = VodUtil.initVodClient(accessKeyId, accessKeySecret); GetVideoPlayAuthResponse response; try { response = VodUtil.getVideoPlayAuthResponse(client, vod); String playAuth = response.getPlayAuth(); //播放憑證 LOG.info('授權碼 = {}', playAuth); responseDto.setContent(playAuth); //VideoMeta信息 LOG.info('VideoMeta信息 = {}', response.getVideoMeta().getTitle()); } catch (Exception e) { System.out.print('ErrorMessage = ' + e.getLocalizedMessage()); } LOG.info('獲取播放授權結束'); return responseDto; }}

methods: { playUrl(url) { let _this = this; console.log('開始播放:', url); // 如果已經有播放器了 就將播放器刪除 if (_this.aliPlayer) { _this.aliPlayer = null; $('#' + _this.playerId + ’-player’).remove(); } // 初始化播放器 $('#' + _this.playerId).append('<div id='' + _this.playerId + '-player'></div>'); _this.aliPlayer = new Aliplayer({ id: _this.playerId + ’-player’, width: ’100%’, autoplay: true, //支持播放地址播放,此播放優先級最高 source: url, cover: ’http://liveroom-img.oss-cn-qingdao.aliyuncs.com/logo.png’ }, function (player) { console.log('播放器創建好了') }) }, playVod(vod) { let _this = this; Loading.show(); _this.$ajax.get(process.env.VUE_APP_SERVER + ’/file/admin/get-auth/’ + vod).then((response) => { Loading.hide(); let resp = response.data; if (resp.success) { //如果已經有播放器了,則將播放器div刪除 if (_this.aliPlayer) { _this.aliPlayer = null; $('#' + _this.playerId + ’-player’).remove(); } // 初始化播放器 $('#' + _this.playerId).append('<div id='' + _this.playerId + '-player'></div>'); _this.aliPlayer = new Aliplayer({ id: _this.playerId + ’-player’, width: ’100%’, autoplay: false, vid: vod, playauth: resp.content, cover: ’http://liveroom-img.oss-cn-qingdao.aliyuncs.com/logo.png’, encryptType: 1, //當播放私有加密流時需要設置。 }, function (player) { console.log(’播放器創建好了?!? }); } else { Toast.warning(’播放錯誤?!? } }); }},

上述的前端代碼只是一個例子,playVod 調用的是阿里的播放器。

到此這篇關于SpringBoot+阿里云OSS實現在線視頻播放的示例的文章就介紹到這了,更多相關SpringBoot阿里云OSS在線視頻內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 一区二区三区免费网站 | 日韩久久久久久 | 国产伦精品一区二区三区四区视频_ | 久久草在线视频 | 亚洲一区二区三区视频 | 性色av一区二区三区免费看开蚌 | 一区二区中文 | 欧美视频在线一区 | 日韩视频欧美视频 | 凹凸日日摸日日碰夜夜爽孕妇 | 久久男人天堂 | 伊人av超碰久久久麻豆 | 亚洲欧美网站 | 欧洲精品在线观看 | 北条麻妃99精品青青久久主播 | 奇米影 | 国产成人精品一区二区三区四区 | 超碰在线看 | 欧美中文字幕在线观看 | 日本不卡一区二区 | 欧美午夜在线 | 亚洲麻豆 | 中文字幕精品一区久久久久 | 日韩中文不卡 | 日本三级精品视频 | 欧美精品一区二区三区在线 | 亚洲综合色自拍一区 | 久久久久网站 | 中文字幕精品一区二区三区精品 | 亚洲精品高清视频 | 欧美一区二区三区免费观看视频 | 国产91视频一区二区 | 欧美日韩三级在线 | 国产网址| 国产一区二区三区免费 | 中文字幕日韩一区二区不卡 | 国产成人免费视频网站高清观看视频 | 四虎最新入口 | 影音先锋亚洲精品 | 久久精品国产99国产精2020新增功能 | 久久情趣视频 | 中文成人在线 | 国产噜噜噜噜噜久久久久久久久 | 国产片侵犯亲女视频播放 | 一级日韩电影 | 亚洲精品91 | 国产探花在线精品一区二区 | 99免费视频 | 999国产在线视频 | 国产精品夜色一区二区三区 | 天天爽天天操 | 久久首页| 欧洲视频一区二区三区 | 亚洲欧美一区二区三区视频 | 91在线观看网站 | 亚洲精品久久久久久久久 | 日韩国产一区二区 | www视频在线观看 | 亚洲日韩欧美一区二区在线 | 免费看毛片的网站 | 国产欧美日韩在线观看 | 一区二区成人在线 | www.44181com | 精品国产一区二区三区日日嗨 | 无码日韩精品一区二区免费 | 中文字幕一区二区在线观看 | 国产欧美中文字幕 | 男女视频免费在线观看 | 国产精品久久久久久久 | 国产一区二区三区免费 | 一级黄色毛片 | 国精产品一区一区三区免费完 | 欧美一区永久视频免费观看 | 2021最新热播中文字幕-第1页-看片视频 青青青久草 | 黄色精品视频 | 欧美日韩成人激情 | 91高清视频在线观看 | 白浆在线播放 | 精品伦精品一区二区三区视频 | 国产91黄色| 色综合天天天天做夜夜夜夜做 | 中文字幕一区二区三区四区 | 波多野结衣一二三 | 亚洲午夜成激人情在线影院 | 91麻豆精品国产91久久久久久 | 亚洲精品专区 | 手机久久看片 | 免费在线成人网 | www日韩欧美 | 免费日韩精品 | 中文字幕av一区二区三区 | 91,看片| 日韩一区二区在线观看 | 操操日 | 99视频这里有精品 | 久久草在线视频 | 国产高清视频在线 | 精品一区二区在线观看 | 国产精品777 | 国产高清久久 | 在线成人av | 2020国产在线 | 97av视频| www久久久| 97国产精品视频人人做人人爱 | 龙珠z在线观看 | 日日骚视频| 在线免费观看黄色 | 一区二区三区视频 | 伊人小视频 | 亚洲精品a在线观看 | 亚洲精品中文字幕乱码无线 | 黄色高清视频 | 精品乱子伦一区二区三区 | 一级黄色影片在线观看 | 国产成人一区 | av天空 | 91大神免费在线观看 | 天天操网 | 欧美成人高清视频 | 久久99精品久久久久久久青青日本 | 成年人视频免费在线看 | 在线观看成人国产 | 国产h在线| www.99热这里只有精品 | 亚洲成人精品一区二区三区 | 国产精品一区二区三区免费 | 盗摄精品av一区二区三区 | 国产精品久久久久9999鸭 | www.久久视频 | 国产精品第一国产精品 | 国产性×xxx盗摄xxxx | 羞羞视频在线观看入口 | 国产精品成人在线 | 五月激情综合婷婷 | 欧美日韩中文在线 | 日韩国产精品一区二区三区 | 欧美综合久久 | 亚洲乱码二区 | 草草视频在线播放 | 久久久91精品国产一区二区三区 | 亚州国产 | 亚洲视频在线播放 | 国产精品伊人影院 | a级在线免费视频 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 欧美精品一区二区在线观看 | 在线观看91精品国产入口 | 中文字幕亚洲一区 | 午夜视频在线播放 | 51ⅴ精品国产91久久久久久 | 国产成人精品一区二区在线 | 亚洲国产激情 | 成人午夜激情 | 中文字幕日韩久久 | 国产精品无码久久久久 | 久久精品亚洲 | 7777奇米影视 | 精品国产一区二区三区av片 | 亚洲精品一区国语对白 | 中文字幕avav | 国产高潮呻吟久久渣男片 | 成人午夜性a一级毛片免费看 | 国产激情免费 | 成人日批| 亚洲精品乱码久久久久久不卡 | 一区二区三区免费 | 一本一本久久a久久精品综合妖精 | 亚洲h视频在线观看 | 久久久久久亚洲 | 精一区二区 | 午夜免费电影 | 国产精品美女久久久久久久久久久 | 亚洲一区二区三区四区五区中文 | 久久久精彩视频 | 日韩视频一| 北条麻妃一区二区三区在线观看 | 国产有码 | 成人精品国产免费网站 | 日韩不卡一区二区 | 日本不卡高字幕在线2019 | 黄色一级大片在线免费看产 | 国产精品1区2区 | 精品人伦一区二区三区蜜桃视频 | 日韩成人 | 91伊人| 在线三级电影 | 欧美三级视频 | 五月婷婷综合久久 | 亚洲视频中文字幕 | 五月婷婷综合网 | 精久久久 | 亚洲一区 | 久久蜜桃精品一区二区三区综合网 | 美欧一级片 | 青青久久| 国产一级一级毛片女人精品 | 日韩成人免费 | 久久久久国产亚洲日本 | 九九热re | 伊人av超碰久久久麻豆 | 亚洲免费网站在线观看 | 三级视频在线 | 国产日韩在线播放 | 级毛片| 亚洲欧美国产精品专区久久 | 麻豆91视频 | 午夜国产一级 | 成人福利av | 国产毛片a级 | 一级h片 | 久久精品国产v日韩v亚洲 | 免费一区| 久久99影视 | 精品国产乱码久久久久久久软件 | 99爱在线观看 | 91精品国产综合久久久久久蜜月 | 波多野结衣先锋影音 | 一区二区三区精品 | 久久99视频 | 视频一区在线播放 | 久久久精品电影 | 欧美精品一区久久 | 天天插天天操 | 欧美精品日韩 | a级性生活 | 欧美一级免费播放 | 欧美肉体xxxx肉交高潮 | 欧美久久大片 | 国产在线一区观看 | 婷婷在线免费视频 | 伊人久久艹 | 久久精品视频免费看 | 日本一级在线观看 | 精品一区二区三区不卡 | 九九九色 | 成人精品鲁一区一区二区 | 性一级录像片片视频免费看 | 国产精品久久久久久久 | 精品欧美一区二区三区久久久 | 久草色视频在线观看 | 久久伊人久久 | 亚洲人在线播放 | 色呦呦网站在线观看 | 日韩精品视频免费专区在线播放 | 一区二区在线视频 | 另类色| 91在线电影 | 国产一区二区三区在线 | 日韩精品视频在线播放 | 国产美女精品 | 精品国产乱码久久久久久1区2区 | 超碰8| 另类二区 | 久久久精品视频免费观看 | 亚洲 国产 另类 精品 专区 | 欧美激情网| 黄色免费av | 国产精品视频 | 午夜三区| 羞羞视频在线播放 | 亚洲乱码国产乱码精品精的特点 | 亚洲成人精品在线观看 | 伊人伊人网 | 日韩欧美一级片 | 日本久久久久 | 91成人免费在线观看 | 精品国产乱码久久久久久1区2区 | 国产精品久久免费观看spa | 国产精品精品视频一区二区三区 | 日本精品在线观看 | 天天夜夜操 | 午夜精品一区二区三区在线观看 | 欧美日韩亚洲一区二区 | av男人电影天堂 | 99久久久国产精品美女 | 欧美日本免费一区二区三区 | 久久国产精品免费一区二区三区 | 91免费在线 | 久久久国产一区 | 国产久 | www.久久久.com| 日本黄色激情片 | 国产精品久久久久久亚洲调教 | 日日操视频 | 久色成人 | av免费在线观看网站 | 伊人国产在线 | 亚洲欧美精品一区二区三区 | 欧洲一区在线 | 国产区日韩区欧美区 | 精品成人在线视频 | 中文字幕亚洲一区二区三区 | 久久综合精品视频 | 久久精品123 | 日本高清视频在线播放 | 怡红院免费在线视频 | 一区二区三区视频 | 日韩精品一区二区三区中文在线 | 一区二区三区免费网站 | 狠狠干网站| 亚洲一区av在线 | 岛国av一区| 日韩成人免费av | 午夜一区二区三区 | 日韩大片播放器 | 欧美视频一区 | 精品国产不卡一区二区三区 | 欧美日韩不卡合集视频 | 漂亮少妇videoshd忠贞 | 久久久精品久久 | 亚洲成人1区 | 国产精品一区二区三区免费 | 欧美一区永久视频免费观看 | 可以免费看黄的网站 | 久久天天躁狠狠躁夜夜躁2014 | 色视频网站在线观看 | 国产三级自拍 | 国产精品一区二区三区四区 | 欧美一级片免费在线观看 | 一色屋精品久久久久久久久久 | 国产精品久久久久久无遮挡 | 色吊丝2288sds中文字幕 | 欧美日韩成人在线视频 | 在线中文字幕第一页 | a在线播放| 欧美在线亚洲 | 中文字幕乱码亚洲精品一区 | 国产福利视频 | 久久久久无码国产精品一区 | 天天干天天操 | 青青久久av北条麻妃海外网 | 精品国产1区2区3区 在线国产视频 | 伊人色综合网 | 久久精品国产精品青草 | 日本黄色三级网站 | 日本久久久一区二区三区 | 久久噜噜噜精品国产亚洲综合 | a级毛片免费高清视频 | 亚洲国产成人精品女人久久久 | 中文字幕亚洲一区二区三区 | 亚洲 成人 av| 久久精品视频免费看 | 国产在线视频在线 | 亚洲视频成人 | 成人xxx | 一区二区三区影院 | 国产在线中文字幕 | 亚洲国产福利一区 | 色无欲天天天影视综合网 | 亚洲日韩欧美一区二区在线 | 在线亚州 | 国产精拍| 亚洲精品乱码久久久久久久 | 亚洲精品日韩精品 | 欧美二区在线观看 | 色婷婷综合久久久中文字幕 | 久久精品一区 | 日韩中文字幕免费在线 | 在线欧美亚洲 | 亚洲成av人乱码色午夜 | 精品在线播放 | 欧美精品理论片大全 | 天堂在线www | 久久福利 | 99精品视频免费在线观看 | 在线免费国产视频 | 天天操天天干视频 | 亚洲香蕉在线观看 | 国产视频久久久久久久 | 午夜精品久久久久久久 | 欧美专区在线观看 | 欧美一区二区三 | 婷婷av在线 | 国产大胆自拍 | 国产精品中文字幕在线播放 | 91超碰在线观看 | 日韩一区二区在线观看 | 日韩在线免费观看网站 | 国产成人精品在线 | 亚洲精品电影网在线观看 | 色综合欧美 | av免费网| 欧美自拍视频 | 亚洲一区二区福利 | 一区二区三区四区av | 91精品国产日韩91久久久久久 | 天天爽夜夜爽夜夜爽精品视频 | 麻豆.蜜桃.91.天美入口 | 久久久精 | 欧美在线视频一区二区 | 欧美一区二区免费 | 国产精品美女在线观看 | 日本在线观看视频一区 | 国产欧美一区二区三区在线看 | 精品1区 | 午夜午夜精品一区二区三区文 | 一区二区精品在线 | 日本久久99 | 国产精品美女久久久久aⅴ国产馆 | 久久久亚洲一区 | 欧美日韩国产91 | 91麻豆精品国产91久久久资源速度 | www.44181com | 日韩欧美中文在线 | 亚洲精品成人在线 | 成人av免费观看 | 久久毛片| 美国成人在线 | 4hu网站| 99青青草 | 久久久高清 | 欧美一区免费 | 国产三级日本三级美三级 | 午夜成人免费视频 | 亚洲免费成人av | 国产视频三区 | 日韩一区免费在线观看 | 日韩欧美国产一区二区三区 | 免费日韩 | 国产91富婆养生按摩会所 | 中文字幕在线看 | 日本一区二区三区免费观看 | 91久久久久久久久久久久久 | 精品欧美黑人一区二区三区 | av手机电影| 久久久999精品视频 欧美老妇交乱视频 | 久久午夜精品 | 一区二区三区高清 | 欧美一区2区三区4区公司二百 | 一区二区免费视频 | 国产不卡视频在线观看 | 日韩精品免费看 | 极品久久 | 亚洲精品影院 | 国产精品一区二区三区av | 色综合久久88色综合天天 | 国产精品夜夜 | 久久99精品国产99久久6男男 | 黄色在线免费 | 亚洲精品视频在线播放 | www.男人天堂| 草草成人| 狠狠艹| www国产成人免费观看视频,深夜成人网 | 国产精品久久久久久久久久久久久 | 精品一区二区三区免费毛片爱 | 午夜午夜精品一区二区三区文 | 午夜精品一区二区三区在线观看 | 日韩一区欧美 | 狠狠做深爱婷婷综合一区 | 日韩福利在线 | 欧美精品一区二区三区在线播放 | 日本三级不卡 | 欧美精品免费在线观看 | 视频二区 | 男人的天堂中文字幕 | 876av国产精品电影 | 午夜私人影院在线观看 | www.色综合| 国产精品25p | 日韩视频一区在线观看 | 欧美一区二区三区电影 | 亚洲网站久久 | 日韩成人一区二区 | 国产精品久久久久久久久免费桃花 | 成人三级在线 | 国产麻豆一区二区三区 | 亚洲一区综合 | 一色屋精品久久久久久久久久 | 精品国产髙清在线看国产毛片 | 日韩免费高清视频 | 国产精品天天干 | 午夜影院免费看 | 99福利视频 | 色黄网站 | 久久蜜桃精品一区二区三区综合网 | 欧美日韩国产一区二区三区不卡 | 久久在线 | 日韩福利在线观看 | 97天堂 | 91精品国产91久久久久久吃药 | 欧美精品免费在线 | 一区二区三区国产视频 | 九九国产| 毛片av在线 | av中文网 | 日韩中文字幕在线免费观看 | 日日干夜夜骑 | 日韩中文在线 | 国产亚洲精品成人av久久影院 | 国产精品色哟哟哟 | 一级特黄| 成人欧美一区二区三区黑人孕妇 | 国产日韩一区二区三免费高清 | 欧美精品一区自拍a毛片在线视频 | 在线观看a视频 | 国内精品一级毛片国产99 | 亚洲自拍在线观看 | 国产成人精品久久二区二区91 | 综合久久综合久久 | 国产日韩欧美在线观看 | 欧美日韩一区精品 | 高清成人 | 欧美在线视频一区 | 超碰8| 婷婷色综合 | 97久久超碰 | 久久首页 | 韩国三级午夜理伦三级三 | 久久福利 | 久久久美女 | 精品成人免费一区二区在线播放 | 日韩精品视频久久 | 欧美成人影院在线 | 精品成人一区 | 国产在线观 | 国产精品毛片无码 | 91视频免费在线看 | 久久久av | 99精品欧美一区二区三区 | 欧美日韩一区二区三区在线电影 | 亚洲 欧美 另类 综合 偷拍 | 91在线精品一区二区 | 亚洲午夜精品一区二区三区他趣 | 亚洲精品成人在线 | 日韩免费精品视频 | 国产成人精品久久久 | 亚洲国产成人精品女人久久久 | 一级亚洲| 黄色成人av | 国产精品毛片一区视频播 | 久久精品综合 | 国产精品美女久久久久aⅴ国产馆 | 中文字幕丝袜 | 成人免费一区二区三区视频网站 | 日韩久色| 国产成人精品一区一区一区 | 久久久国产视频 | 色婷网 | 国产成人自拍一区 | 日韩99 | www.久久久.com | 亚洲精品久久久一区二区三区 | 亚洲一区二区三区四区五区中文 | 免费一级毛片 | 日韩在线无 | 欧美精品乱码久久久久久按摩 | 色综合久久久久 | 国产一区二区三区免费 | 黄色国产大片 | 中文字幕一区二区三区免费视频 | 真实国产露脸乱 | 成人在线影视 | 一区亚洲 | 欧美一级二级三级视频 | 玖草资源 | 欧美日韩一区二区三区免费视频 | av黄色在线看 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲综合首页 | av大片| 国产视频黄在线观看 | 欧美一级在线观看视频 | 久久精品国产99国产 | 殴美一区 | 国产精品一区二区三区免费 | 在线观看一区二区三区四区 | 伊人青青久 | av影片在线播放 | 国产精品久久久久久二区 | 狠狠se | 激情五月婷婷 | 久久一区 | 亚洲精品视频在线 | 91操操 | 亚洲三级在线看 | 亚洲视频一区在线 | 精品美女久久久 | 日本久久国产 | 精品久久久久久久人人人人传媒 | 久久综合九色综合欧美狠狠 | 91成人在线视频 | 欧美午夜在线 | 一区二区三区精品视频 | 久9久9| 欧美一区永久视频免费观看 | av黄在线观看 | 国产成人午夜视频 | 羞羞的视频网站 | 欧美视频三区 | 成人免费毛片高清视频 | www国产一区 | 山岸逢花在线观看无删减 | 国产999免费视频 | 亚洲九九九 | 欧美日韩在线免费观看 | av在线播放网址 | 97久久精品 | 日韩av电影在线免费观看 | 亚洲免费婷婷 | 国产高潮在线观看 | 亚洲麻豆 | 国产一级做a爰片在线看免费 | 中文字幕av一区二区 | 精品一区二区三区在线视频 | 国产一区不卡视频 | 欧美日韩午夜 | 日韩一区二区在线观看 | 欧美精品欧美精品系列 | 国产精品一区二区久久 | 免费黄色av | 在线欧美日韩 | 国产日韩一区 | 久久视频一区 |