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

HarmonyOS 分布式之仿抖音應用

開發 分布式 OpenHarmony
使用Java UI開發分布式仿抖音應用,上下滑動切換視頻,評論功能,設備遷移功能:記錄播放的視頻頁和進度、評論數據。

[[430075]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

項目介紹

使用Java UI開發分布式仿抖音應用,上下滑動切換視頻,評論功能,設備遷移功能:記錄播放的視頻頁和進度、評論數據。

效果演示

1.上下滑動切換視頻、點擊遷移圖標,彈框選擇在線的設備,完成視頻數據的遷移。

2.點擊評論圖標查看評論,編輯評論內容并發送。點擊遷移圖標,彈框選擇在線的設備,完成評論數據的遷移。

項目結構

主要代碼

1、上下滑動頁面

頁面切換用到系統組件PageSlider,默認左右切換,設置為上下方向:setOrientation(Component.VERTICAL);

  1. import ohos.aafwk.ability.AbilitySlice; 
  2. import ohos.aafwk.content.Intent; 
  3. import ohos.agp.components.*; 
  4.  
  5. import java.util.ArrayList; 
  6. import java.util.List; 
  7.  
  8. public class MainAbilitySlice extends AbilitySlice { 
  9.     @Override 
  10.     public void onStart(Intent intent) { 
  11.         super.onStart(intent); 
  12.         super.setUIContent(ResourceTable.Layout_ability_main); 
  13.         // 查找滑動頁面組件 
  14.         PageSlider pageSlider = (PageSlider) findComponentById(ResourceTable.Id_pageSlider); 
  15.         // 設置滑動方向為上下滑動 
  16.         pageSlider.setOrientation(Component.VERTICAL); 
  17.         // 集合測試數據 
  18.         List<String> listData=new ArrayList<>(); 
  19.         listData.add("第一頁"); 
  20.         listData.add("第二頁"); 
  21.         listData.add("第三頁"); 
  22.          
  23.         // 設置頁面適配器 
  24.         pageSlider.setProvider(new PageSliderProvider() { 
  25.             /** 
  26.              * 獲取當前適配器中可用視圖的數量 
  27.              */ 
  28.             @Override 
  29.             public int getCount() { 
  30.                 return listData.size(); 
  31.             } 
  32.             /** 
  33.              * 創建頁面 
  34.              */ 
  35.             @Override 
  36.             public Object createPageInContainer(ComponentContainer container, int position) { 
  37.                 // 查找布局 
  38.                 Component component = LayoutScatter.getInstance(getContext()).parse(ResourceTable.Layout_item_page, nullfalse); 
  39.                 Text textContent = (Text) component.findComponentById(ResourceTable.Id_text_item_page_content); 
  40.                 // 設置數據 
  41.                 textContent.setText(listData.get(position)); 
  42.                 // 添加到容器中 
  43.                 container.addComponent(component); 
  44.                 return component; 
  45.             } 
  46.             /** 
  47.              * 銷毀頁面 
  48.              */ 
  49.             @Override 
  50.             public void destroyPageFromContainer(ComponentContainer container, int position, Object object) { 
  51.                 // 從容器中移除 
  52.                 container.removeComponent((Component) object); 
  53.             } 
  54.             /** 
  55.              * 檢查頁面是否與對象匹配 
  56.              */ 
  57.             @Override 
  58.             public boolean isPageMatchToObject(Component page, Object object) { 
  59.                 return true
  60.             } 
  61.         }); 
  62.  
  63.         // 添加頁面改變監聽器 
  64.         pageSlider.addPageChangedListener(new PageSlider.PageChangedListener() { 
  65.             /** 
  66.              * 頁面滑動時調用 
  67.              */ 
  68.             @Override 
  69.             public void onPageSliding(int itemPos, float itemPosOffset, int itemPosOffsetPixels) {} 
  70.             /** 
  71.              * 當頁面滑動狀態改變時調用 
  72.              */ 
  73.             @Override 
  74.             public void onPageSlideStateChanged(int state) {} 
  75.             /** 
  76.              * 選擇新頁面時回調 
  77.              */ 
  78.             @Override 
  79.             public void onPageChosen(int itemPos) { 
  80.                 // 在此方法下,切換頁面獲取當前頁面的視頻源,進行播放 
  81.                 String data = listData.get(itemPos); 
  82.             } 
  83.         }); 
  84.     } 

2、播放視頻

視頻播放使用Player,視頻畫面窗口顯示使用SurfaceProvider。

  1. import ohos.aafwk.ability.AbilitySlice; 
  2. import ohos.aafwk.content.Intent; 
  3. import ohos.agp.components.surfaceprovider.SurfaceProvider; 
  4. import ohos.agp.graphics.SurfaceOps; 
  5. import ohos.global.resource.RawFileDescriptor; 
  6. import ohos.media.common.Source; 
  7. import ohos.media.player.Player; 
  8.  
  9. import java.io.IOException; 
  10.  
  11. public class MainAbilitySlice extends AbilitySlice { 
  12.     // 視頻路徑 
  13.     private final String videoPath = "resources/rawfile/HarmonyOS.mp4"
  14.     // 播放器 
  15.     private Player mPlayer; 
  16.  
  17.     @Override 
  18.     public void onStart(Intent intent) { 
  19.         super.onStart(intent); 
  20.         super.setUIContent(ResourceTable.Layout_ability_main); 
  21.         // 初始化播放器 
  22.         mPlayer = new Player(getContext()); 
  23.         // 查找視頻窗口組件 
  24.         SurfaceProvider surfaceProvider = (SurfaceProvider) findComponentById(ResourceTable.Id_surfaceProvider); 
  25.         // 設置視頻窗口在頂層 
  26.         surfaceProvider.pinToZTop(true); 
  27.         // 設置視頻窗口操作監聽 
  28.         if (surfaceProvider.getSurfaceOps().isPresent()) { 
  29.             surfaceProvider.getSurfaceOps().get().addCallback(new SurfaceOps.Callback() { 
  30.                 /** 
  31.                  * 創建視頻窗口 
  32.                  */ 
  33.                 @Override 
  34.                 public void surfaceCreated(SurfaceOps holder) { 
  35.                     try { 
  36.                         RawFileDescriptor fileDescriptor = getResourceManager().getRawFileEntry(videoPath).openRawFileDescriptor(); 
  37.                         Source source = new Source(fileDescriptor.getFileDescriptor(), 
  38.                                 fileDescriptor.getStartPosition(), 
  39.                                 fileDescriptor.getFileSize() 
  40.                         ); 
  41.                         // 設置媒體文件 
  42.                         mPlayer.setSource(source); 
  43.                         // 設置播放窗口 
  44.                         mPlayer.setVideoSurface(holder.getSurface()); 
  45.                         // 循環播放 
  46.                         mPlayer.enableSingleLooping(true); 
  47.                         // 準備播放環境并緩沖媒體數據 
  48.                         mPlayer.prepare(); 
  49.                         // 開始播放 
  50.                         mPlayer.play(); 
  51.                     } catch (IOException e) { 
  52.                         e.printStackTrace(); 
  53.                     } 
  54.  
  55.                 } 
  56.                 /** 
  57.                  * 視頻窗口改變 
  58.                  */ 
  59.                 @Override 
  60.                 public void surfaceChanged(SurfaceOps holder, int format, int width, int height) {} 
  61.                 /** 
  62.                  * 視頻窗口銷毀 
  63.                  */ 
  64.                 @Override 
  65.                 public void surfaceDestroyed(SurfaceOps holder) {} 
  66.             }); 
  67.         } 
  68.     } 
  69.  
  70.     @Override 
  71.     protected void onStop() { 
  72.         super.onStop(); 
  73.         // 頁面銷毀,釋放播放器 
  74.         if (mPlayer != null) { 
  75.             mPlayer.stop(); 
  76.             mPlayer.release(); 
  77.         } 
  78.     } 

3、跨設備遷移示例

跨設備遷移使用IAbilityContinuation接口。

1、在entry下的config.json配置權限

  1. "reqPermissions": [ 
  2.       { 
  3.         "name""ohos.permission.DISTRIBUTED_DATASYNC" 
  4.       }, 
  5.       { 
  6.         "name""ohos.permission.GET_DISTRIBUTED_DEVICE_INFO" 
  7.       }, 
  8.       { 
  9.         "name""ohos.permission.DISTRIBUTED_DEVICE_STATE_CHANGE" 
  10.       } 
  11.     ] 

2、實現IAbilityContinuation接口,說明:一個應用可能包含多個Page,僅需要在支持遷移的Page中通過以下方法實現IAbilityContinuation接口。同時,此Page所包含的所有AbilitySlice也需要實現此接口。

  1. import ohos.aafwk.ability.AbilitySlice; 
  2. import ohos.aafwk.ability.IAbilityContinuation; 
  3. import ohos.aafwk.content.Intent; 
  4. import ohos.aafwk.content.IntentParams; 
  5. import ohos.agp.components.Button; 
  6. import ohos.agp.components.Text; 
  7. import ohos.bundle.IBundleManager; 
  8. import ohos.distributedschedule.interwork.DeviceInfo; 
  9. import ohos.distributedschedule.interwork.DeviceManager; 
  10.  
  11. import java.util.List; 
  12.  
  13. public class MainAbilitySlice extends AbilitySlice implements IAbilityContinuation { 
  14.     private String data = ""
  15.     String PERMISSION = "ohos.permission.DISTRIBUTED_DATASYNC"
  16.  
  17.     @Override 
  18.     public void onStart(Intent intent) { 
  19.         super.onStart(intent); 
  20.         super.setUIContent(ResourceTable.Layout_ability_main); 
  21.         // 申請權限 
  22.         if (verifySelfPermission(PERMISSION) != IBundleManager.PERMISSION_GRANTED) { 
  23.             requestPermissionsFromUser(new String[]{PERMISSION}, 0); 
  24.         } 
  25.         Button button = (Button)findComponentById(ResourceTable.Id_button); 
  26.         Text text = (Text)findComponentById(ResourceTable.Id_text); 
  27.          
  28.         // 點擊遷移 
  29.         button.setClickedListener(component -> { 
  30.             // 查詢分布式網絡中所有在線設備(不包括本地設備)的信息。 
  31.             List<DeviceInfo> deviceList = DeviceManager.getDeviceList(DeviceInfo.FLAG_GET_ONLINE_DEVICE); 
  32.             if (deviceList.size()>0) { 
  33.                 // 啟動遷移,指定的設備ID 
  34.                 continueAbility(deviceList.get(0).getDeviceId()); 
  35.             } 
  36.         }); 
  37.         // 顯示遷移的數據 
  38.         text.setText("遷移的數據:"+data); 
  39.     } 
  40.     /** 
  41.      * 啟動遷移時首次調用此方法 
  42.      * @return 是否進行遷移 
  43.      */ 
  44.     @Override 
  45.     public boolean onStartContinuation() { 
  46.         return true
  47.     } 
  48.     /** 
  49.      * 遷移時存入數據 
  50.      */ 
  51.     @Override 
  52.     public boolean onSaveData(IntentParams intentParams) { 
  53.         intentParams.setParam("data","測試數據"); 
  54.         return true
  55.     } 
  56.     /** 
  57.      * 獲取遷移存入的數據,在生命周期的onStart之前執行 
  58.      */ 
  59.     @Override 
  60.     public boolean onRestoreData(IntentParams intentParams) { 
  61.         data= (String) intentParams.getParam("data"); 
  62.         return true
  63.     } 
  64.     /** 
  65.      * 遷移完成 
  66.      */ 
  67.     @Override 
  68.     public void onCompleteContinuation(int i) {} 

根據上面的核心代碼示例,了解實現原理,接下來便可以結合實際需求完善功能了。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-11-16 09:38:10

鴻蒙HarmonyOS應用

2021-12-13 11:07:10

鴻蒙HarmonyOS應用

2018-07-17 08:14:22

分布式分布式鎖方位

2021-01-21 09:45:36

鴻蒙HarmonyOS分布式

2021-05-28 09:52:00

鴻蒙HarmonyOS應用

2025-06-13 07:30:51

2020-11-06 12:12:35

HarmonyOS

2022-03-06 21:43:05

Citus架構PostgreSQL

2019-09-26 15:43:52

Hadoop集群防火墻

2019-02-13 13:41:07

MemCache分布式HashMap

2018-12-14 10:06:22

緩存分布式系統

2021-12-10 15:06:56

鴻蒙HarmonyOS應用

2021-12-02 10:11:44

鴻蒙HarmonyOS應用

2021-07-22 10:20:21

鴻蒙HarmonyOS應用

2019-10-10 09:16:34

Zookeeper架構分布式

2021-07-23 08:57:32

鴻蒙HarmonyOS應用

2019-06-19 15:40:06

分布式鎖RedisJava

2023-05-29 14:07:00

Zuul網關系統

2017-09-01 05:35:58

分布式計算存儲

2023-01-09 11:23:03

系統
點贊
收藏

51CTO技術棧公眾號

日本精品久久久久久| 国产三级在线观看完整版| av中文字幕电影在线看| 2021中文字幕一区亚洲| 国产精品igao视频| 青青草免费av| 久草成人资源| 欧美一级高清片| 老司机激情视频| 九色网友自拍视频手机在线| 国产伦精一区二区三区| 欧美一区在线直播| 顶臀精品视频www| 尤物tv在线精品| 日韩一级二级三级精品视频| 欧美精品无码一区二区三区| 亚洲综合影视| 中文文精品字幕一区二区| 波多野结衣一区二区三区在线观看| 久久精品视频1| 欧美三级在线| 日韩视频免费在线观看| 精品黑人一区二区三区观看时间| 日韩成人免费av| 色婷婷av久久久久久久| 欧美性潮喷xxxxx免费视频看| www.黄在线观看| 99久久精品国产一区二区三区| 91精品啪aⅴ在线观看国产| 欧美一区二区三区久久久| 欧美日韩视频| 久久在线免费观看视频| 国产精品69久久久久孕妇欧美| 日日狠狠久久偷偷综合色| 日韩精品专区在线影院观看| 免费一区二区三区在线观看| 中文不卡1区2区3区| 亚洲综合免费观看高清完整版 | 91国内精品久久| 国产性xxxx| 外国成人免费视频| 最新的欧美黄色| 在线国产视频一区| 国产99久久| 亚洲人成电影网站色| 最近中文字幕无免费| 欧美一区自拍| 亚洲精品v欧美精品v日韩精品| 无码人妻久久一区二区三区蜜桃| 一区二区三区| 7777精品久久久大香线蕉| 国产精品拍拍拍| 日韩精品麻豆| 欧美日韩精品一二三区| 国内av一区二区| 精品入口麻豆88视频| 日韩一区二区免费视频| 一级黄色高清视频| 一区二区三区免费在线看| 日韩区在线观看| 亚洲美女高潮久久久| 久久伊人精品| 亚洲国产精品成人精品 | 久久久影视传媒| 欧美一区二区三区四区夜夜大片| 国产中文在线视频| 欧美国产综合色视频| 亚洲欧洲一二三| 黄色免费在线看| 国产精品久久久久久亚洲毛片| 欧美国产一二三区| 黄色软件在线| 国产精品国产精品国产专区不蜜| 中文字幕在线亚洲精品| 色屁屁www国产馆在线观看| 亚洲成av人片在线观看无码| 91传媒久久久| 国产黄色一区| 日韩精品中文字幕一区二区三区 | 一区二区三区高清不卡| 每日在线观看av| 韩日精品一区二区| 欧美精三区欧美精三区| 制服.丝袜.亚洲.中文.综合懂| 精品亚洲精品| 一本色道久久综合狠狠躁篇怎么玩| 日本高清黄色片| 欧美日韩免费观看一区=区三区| 久久久欧美一区二区| 亚洲av中文无码乱人伦在线视色| 免费看欧美女人艹b| av一区二区三区四区电影| 日本天堂影院在线视频| ...xxx性欧美| 欧美视频在线播放一区| 91精品视频一区二区| 亚洲国产另类 国产精品国产免费| 国产免费一区二区三区网站免费| 欧美 日韩 国产精品免费观看| 2019日本中文字幕| 亚洲最新av网站| 97久久精品人人做人人爽50路| 日韩一区二区电影在线观看| 日本乱理伦在线| 欧洲亚洲国产日韩| 精品1卡二卡三卡四卡老狼| 免费成人av| 欧美大荫蒂xxx| 怡红院男人的天堂| av网站免费线看精品| 亚洲欧美日韩精品在线| 国产免费拔擦拔擦8x在线播放| 欧美日本一区二区| 少妇精品一区二区三区| 国产精品av久久久久久麻豆网| 国产精品久久久久久久久久ktv| 丰满熟女一区二区三区| 中文字幕在线视频一区| 亚洲精品乱码久久久久久自慰 | 欧美日韩精品综合| 欧洲中文在线| 7777精品伊人久久久大香线蕉完整版 | 国产美女主播在线| 外国成人毛片| 夜夜嗨av一区二区三区免费区 | 日韩一区二区三区电影在线观看 | 成人欧美一区二区三区视频网页| 日韩少妇内射免费播放18禁裸乳| 免费欧美网站| 久久精品国产99国产精品澳门| 日韩在线视频不卡| 91亚洲精品久久久蜜桃网站| 精品久久久久久无码中文野结衣| 日韩精品视频一区二区三区| 日韩视频免费大全中文字幕| 最新中文字幕免费| 国产亚洲一区字幕| 美女福利视频在线| 一本色道久久综合狠狠躁的番外| 欧美黑人性视频| www.av导航| 亚洲精品国久久99热| 亚洲最大成人在线观看| 天堂综合网久久| 2020久久国产精品| 日韩一二三四| 日本高清不卡视频| av黄色免费网站| 久久综合激情| 天堂精品一区二区三区| 成人黄色毛片| 另类色图亚洲色图| 亚洲精品国产av| 亚洲午夜私人影院| 好男人香蕉影院| 国产精品一卡| 日韩黄色影视| 亚洲综合资源| 欧美黑人巨大xxx极品| 神马久久久久久久久久| 日韩欧美成人网| 欧美 日韩 成人| 久久99精品网久久| 国产片侵犯亲女视频播放| 风间由美一区二区av101| 午夜精品一区二区三区在线| 欧美一区二区视频| 欧美日韩日日摸| 国产稀缺精品盗摄盗拍| 成人免费视频视频| 国模吧无码一区二区三区| 欧美一区二区三区久久| 国产精品视频资源| 亚洲性图自拍| 亚洲美女动态图120秒| 超碰在线免费97| 又紧又大又爽精品一区二区| 亚洲国产精品成人综合久久久| 久久久www| 欧美性受xxxx黑人猛交88| 国产成人aa在线观看网站站| 国产成人精品一区二区在线| 黄色免费在线网站| 国产丝袜高跟一区| 国产精品高潮呻吟久久久| 亚洲一二三区在线观看| 亚洲国产日韩一区无码精品久久久| 国产在线观看一区二区| 国产午夜福利100集发布| 欧美艳星介绍134位艳星| av在线不卡一区| 黑人巨大亚洲一区二区久 | 久久国产在线观看| 久久精品在线观看| 91丨porny丨九色| 欧美亚洲视频| 亚洲精品国产suv一区88| 国内精品久久久久久久久电影网| 亚洲精品日韩激情在线电影| 免费观看一级欧美片| 欧美床上激情在线观看| 九色视频成人自拍| 亚洲精品一区二区在线观看| 在线免费a视频| 欧美日韩激情小视频| www.av免费| 久久精品一二三| 欧美极品jizzhd欧美仙踪林| 免费高清在线一区| 免费午夜视频在线观看| 韩国av一区| 操bbb操bbb| 波多野结衣在线观看一区二区| 国产一区二区三区奇米久涩| 亚洲毛片在线免费| 国产精品久久久久久影视| sm捆绑调教国产免费网站在线观看| 精品国产一区二区在线| 国产日韩精品在线看| 亚洲精品电影在线| 粉嫩小泬无遮挡久久久久久| 欧美人牲a欧美精品| 国产suv精品一区二区33| 精品美女久久久久久免费| 久久亚洲精品大全| 亚洲精品欧美专区| 91n在线视频| 国产精品久久久久久一区二区三区 | 精品中文字幕一区二区三区四区| 国产精品18久久久久久麻辣| 欧亚av在线| 91国内在线视频| 波多野结衣久久| 久99九色视频在线观看| 国产激情在线观看| 免费成人高清视频| 黄色片免费在线观看| 久久视频精品在线| 黄色网页在线免费观看| 久久成人18免费网站| 成人福利片网站| 美女啪啪无遮挡免费久久网站| 日本电影全部在线观看网站视频 | 国产3级在线观看| 国产精品入口麻豆原神| 农村老熟妇乱子伦视频| 国产精品女主播av| 肉色超薄丝袜脚交69xx图片| 国产精品成人免费| 外国一级黄色片| 亚洲一区二区欧美激情| 日韩美女黄色片| 天天综合天天做天天综合| 日韩欧美亚洲视频| 疯狂做受xxxx欧美肥白少妇| 久久久久久久久久成人| 欧美视频三区在线播放| 国产精品毛片一区二区在线看舒淇 | 99久久精品费精品国产| 99热这里只有精品7| 女同性一区二区三区人了人一 | 蜜桃av一区二区三区电影| 久久久久久久久久一区二区| 国产一区二区三区久久久| 中文在线字幕观看| 久久综合av免费| 成人午夜免费影院| 亚洲图片欧美综合| 久久久久在线视频| 在线不卡免费欧美| 欧美 日韩 国产 成人 在线| 亚洲开心激情网| 日p在线观看| 91精品国产高清| 成人自拍av| 91青青草免费在线看| 天堂一区二区三区四区| 在线观看视频黄色| 国产日韩一区二区三区在线播放 | 成人美女视频在线观看| 欧美 日本 国产| 国产精品乱码一区二区三区软件| 欧美成人免费看| 日本电影亚洲天堂一区| 国产成人a人亚洲精品无码| 亚洲欧美日韩区| 超碰在线无需免费| 日韩av大片在线| 精品久久国产一区| 日本三级中国三级99人妇网站| 围产精品久久久久久久| 日本黄色三级大片| 国产成人精品影视| 亚洲图片第一页| 天天综合日日夜夜精品| 91精品国自产| 亚洲毛片在线免费观看| 91麻豆免费在线视频| 日av在线播放中文不卡| 日韩免费高清视频网站| 日韩欧美国产二区| 亚洲清纯自拍| 97超碰免费在线观看| 欧美激情一区在线| 黄网在线观看视频| 日韩免费福利电影在线观看| 国模无码视频一区二区三区| 中文字幕乱码在线播放| 成人午夜激情免费视频| 狠狠做六月爱婷婷综合aⅴ| 欧美黄网在线观看| 麻豆91小视频| 欧美丰满老妇熟乱xxxxyyy| 天天亚洲美女在线视频| 国产综合视频在线| 久久视频在线免费观看| 六九午夜精品视频| 手机在线观看国产精品| 欧美一级久久| 人体私拍套图hdxxxx| 亚洲免费av网站| 亚洲免费视频二区| 亚洲国产欧美久久| 色yeye免费人成网站在线观看| 国产精品久久久久999| 在线日本制服中文欧美| 激情伊人五月天| 成人黄页毛片网站| 久久久久久久久久一区二区三区| 欧美福利电影网| 国产传媒在线播放| 亚洲va电影大全| 久久久久蜜桃| 亚洲欧美日韩一二三区| 中文乱码免费一区二区| 亚洲在线精品视频| 色悠悠久久88| 在线免费成人| 性欧美18一19内谢| 国产精品亚洲人在线观看| 91成人福利视频| 日韩亚洲欧美成人一区| 手机电影在线观看| 国产精品9999久久久久仙踪林| 在线播放一区| 欧美xxxxx精品| 欧美日韩中文字幕| 国产视频网站在线| 国产精品影院在线观看| 国产精品久久久久久| 性色av浪潮av| 亚洲一区二区成人在线观看| 天堂网av2014| 欧洲一区二区视频| 欧美一区二区麻豆红桃视频| 欧美成人乱码一二三四区免费| 中文字幕在线一区免费| www.日韩高清| 欧美一区二粉嫩精品国产一线天| 偷窥自拍亚洲色图精选| 亚洲黄色a v| 亚洲欧洲精品天堂一级| www.色视频| 91国产视频在线播放| 国产欧美日韩影院| 五月婷婷丁香色| 一区二区三区四区蜜桃| 日本黄色大片视频| 国产91免费观看| 亚洲精品小说| 91免费电影网站| 精品视频一区二区三区| www.亚洲视频.com| 国产亚洲成aⅴ人片在线观看| 亚洲在线视频播放| 国内精品伊人久久| av资源久久| 国产精品嫩草69影院| 日韩欧美中文字幕在线播放| 欧美r级在线| 国产欧美日韩综合一区在线观看 | 亚洲全黄一级网站| 综合欧美精品| 日韩avxxx| 亚洲免费观看高清完整版在线| 日韩在线视频第一页| 国产精品日韩专区| 一区二区黄色| 丝袜 亚洲 另类 欧美 重口| 日韩精品在线免费| 精品视频一二| 国产精品拍拍拍| 精品日本高清在线播放| caopen在线视频| 日韩欧美视频第二区| 99re66热这里只有精品3直播| 国产一区二区波多野结衣| 日本免费久久高清视频| 欧美破处大片在线视频| 欧美日韩中文字幕视频|