亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > iOS > 正文

iOS開發(fā)之AssetsLibrary框架使用詳解

2019-10-21 18:39:43
字體:
供稿:網(wǎng)友

一、引言

AssetsLibrary框架是專門用來操作相冊相關(guān)資源的一個框架,其是iOS4到iOS9之間常使用的一個框架,在iOS9之后,系統(tǒng)系統(tǒng)了Photos框架代替了AssetsLibrary框架,但是AssetsLibrary框架依然可以使用,并且其結(jié)構(gòu)和設(shè)計思路依然值得我們進(jìn)行分析學(xué)習(xí)。

二、概述

AssetsLibrary框架會操作系統(tǒng)的相冊,因此首先需要進(jìn)行權(quán)限的申請,在使用之前,首先需要在Info.plist文件中添加如下鍵值:

Privacy - Photo Library Usage Description

AssetsLibrary框架中核心的類關(guān)系如下圖所示:

iOS開發(fā),AssetsLibrary,框架

1.ALAssetsLibrary:代表整個設(shè)備中的照片和視頻,通過ALAssetsLibrary可以獲取和包括設(shè)備中的照片和視頻

2.ALAssetsGroup:映射照片庫中的一個相冊,通過ALAssetsGroup可以獲取某個相冊的信息,相冊下的照片和視頻,同時也可以對某個相冊添加資源

3.ALAsset:映射相冊中的一個照片或者視頻,通過ALAsset可以獲取某個照片或者視頻的詳細(xì)信息,獲取保存照片和視頻

4.ALAssetRepresentation:ALAssetRepresentation是對ALAsset的封裝(但不是其子類),可以更方便地獲取ALAsset中的資源信息,每個ALAsset都有至少一個ALAssetRepresentation對象,可以通過default<Representation獲取.而例如使用系統(tǒng)相機(jī)拍攝的RAW+JPEG照片,則會有兩個ALAssetRepresentation對象,一個封裝了照片的RAW信息,另一個則封裝了照片的JPEG信息

5.ALAssetsFilter:相當(dāng)于過濾器,有三個方法,allPhotos:獲取相冊中所有的照片.allVideos:獲取相冊中所有的視頻.allAssets:獲取照片庫中的相冊,通過ALAssetsGroup類中的setAssetsFilter來調(diào)用

三、ALAssetsLibrary資源庫對象

ALAssetsLibrary類用來構(gòu)建資源庫對象,這個對象用來整體操作系統(tǒng)的相冊資源,在使用它之前我們可以使用下面的方法來獲取用戶的授權(quán)情況:

+ (ALAuthorizationStatus)authorizationStatus;

ALAuthorizationStatus枚舉定義了用戶的授權(quán)情況,定義如下:

typedef NS_ENUM(NSInteger, ALAuthorizationStatus) {  ALAuthorizationStatusNotDetermined, // 用戶尚未選擇是否授權(quán)  ALAuthorizationStatusRestricted,  //應(yīng)用尚未授權(quán)  ALAuthorizationStatusDenied),    // 用戶拒絕授權(quán)  ALAuthorizationStatusAuthorized   // 用戶已經(jīng)授權(quán)}

如果用戶尚未授權(quán)過,那么任何訪問操作都將觸發(fā)授權(quán)機(jī)制。

資源庫中的資源數(shù)據(jù)是以組的方式進(jìn)行存儲,下面代碼示例了獲取資源組的方式:

  _library = [[ALAssetsLibrary alloc]init];  [_library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {    if (group) { // 遍歷相冊還未結(jié)束      // 設(shè)置過濾器      [group setAssetsFilter:[ALAssetsFilter allPhotos]];      if (group.numberOfAssets) {        NSLog(@"%@",group);      }    } else { // 遍歷結(jié)束(當(dāng)group為空的時候就意味著結(jié)束)              NSLog(@"沒有相冊列表了");          }      } failureBlock:^(NSError *error) {    NSLog(@"失敗");  }];

上面示例的枚舉函數(shù)用來根據(jù)參數(shù)類型獲取資源組,ALAssetsGroupType參數(shù)決定獲取組的類型,可選值枚舉如下:

enum {  ALAssetsGroupLibrary   ,// 編輯庫  ALAssetsGroupAlbum    ,//相冊庫  ALAssetsGroupEvent    ,//事件庫   ALAssetsGroupFaces    ,// iTunes同步  ALAssetsGroupSavedPhotos ,// 保存的相片  ALAssetsGroupPhotoStream ,// The PhotoStream album.  ALAssetsGroupAll     ,//所有庫};

枚舉過程中,我們可以過去到ALAssetsGroup類型的對象,這個對象中封裝了相片資源信息,后面會介紹。

下面列舉了ALAssetsLibrary中其他常用的方法:

//直接通過URL來獲取資源- (void)assetForURL:(NSURL *)assetURL resultBlock:(ALAssetsLibraryAssetForURLResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock;//直接通過URL來獲取資源組- (void)groupForURL:(NSURL *)groupURL resultBlock:(ALAssetsLibraryGroupResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock;//向相冊庫中添加一個新的資源組 可以自定義名稱- (void)addAssetsGroupAlbumWithName:(NSString *)name resultBlock:(ALAssetsLibraryGroupResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock;//向相冊中寫入一張圖片 orientation參數(shù)設(shè)置圖片的方向/*typedef NS_ENUM(NSInteger, ALAssetOrientation) {  ALAssetOrientationUp ,      // 向上 默認(rèn)的  ALAssetOrientationDown ,     // 向下  ALAssetOrientationLeft ,     // 向左  ALAssetOrientationRight ,     // 向右  ALAssetOrientationUpMirrored ,  //  ALAssetOrientationDownMirrored , // horizontal flip  ALAssetOrientationLeftMirrored , // vertical flip  ALAssetOrientationRightMirrored , // vertical flip};*/- (void)writeImageToSavedPhotosAlbum:(CGImageRef)imageRef orientation:(ALAssetOrientation)orientation completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;//向相冊中寫入一張圖片 并可以設(shè)置圖片的元數(shù)據(jù)- (void)writeImageToSavedPhotosAlbum:(CGImageRef)imageRef metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;//向相冊中寫入圖片數(shù)據(jù) 并可以設(shè)置元數(shù)據(jù)- (void)writeImageDataToSavedPhotosAlbum:(NSData *)imageData metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;//將某個路徑的視頻寫入相冊中- (void)writeVideoAtPathToSavedPhotosAlbum:(NSURL *)videoPathURL completionBlock:(ALAssetsLibraryWriteVideoCompletionBlock)completionBlock;//檢查路徑中的視頻是否和相冊相兼容- (BOOL)videoAtPathIsCompatibleWithSavedPhotosAlbum:(NSURL *)videoPathURL;

當(dāng)資源庫改變時,系統(tǒng)會發(fā)出如下通知:

//資源庫改變的通知extern NSString *const ALAssetsLibraryChangedNotification;

通知中傳遞的信息中包含如下字段:

//資源庫更新extern NSString *const ALAssetLibraryUpdatedAssetsKey;//插入組extern NSString *const ALAssetLibraryInsertedAssetGroupsKey;//更新組extern NSString *const ALAssetLibraryUpdatedAssetGroupsKey;//刪除組extern NSString *const ALAssetLibraryDeletedAssetGroupsKey;

下面列舉了操作過程中的一些異常定義:

enum {  ALAssetsLibraryUnknownError =         -1,   // 未知錯誤  ALAssetsLibraryWriteFailedError =      -3300,   //寫入錯誤  ALAssetsLibraryWriteBusyError =       -3301,   // 寫入繁忙 可以重試  ALAssetsLibraryWriteInvalidDataError =   -3302,   // 無效數(shù)據(jù)  ALAssetsLibraryWriteIncompatibleDataError = -3303,   // 不兼容的數(shù)據(jù)  ALAssetsLibraryWriteDataEncodingError =   -3304,   // 數(shù)據(jù)編碼錯誤  ALAssetsLibraryWriteDiskSpaceError =    -3305,   // 內(nèi)存不足  ALAssetsLibraryDataUnavailableError =    -3310,   // 數(shù)據(jù)不可用  ALAssetsLibraryAccessUserDeniedError =   -3311,   // 權(quán)限錯誤  ALAssetsLibraryAccessGloballyDeniedError = -3312,   // 權(quán)限錯誤};

四、ALAssetsGroup資源組對象

資源組其實就是對應(yīng)與我們相冊中的一組資源,我們可以通過如下的方便遍歷出其中的所有資源:

  _library = [[ALAssetsLibrary alloc]init];  [_library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {    if (group) { // 遍歷相冊還未結(jié)束      // 設(shè)置過濾器      [group setAssetsFilter:[ALAssetsFilter allPhotos]];      if (group.numberOfAssets) {        [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {          NSLog(@"%d:%@",index,result);        }];      }    } else { // 遍歷結(jié)束(當(dāng)group為空的時候就意味著結(jié)束)        NSLog(@"沒有相冊列表了");    }  } failureBlock:^(NSError *error) {    NSLog(@"失敗");  }];

ALAssetsGroup中相關(guān)方法解析如下:

//獲取相關(guān)屬性/*extern NSString *const ALAssetsGroupPropertyName;//組名字extern NSString *const ALAssetsGroupPropertyType;//組類型extern NSString *const ALAssetsGroupPropertyPersistentID; //IDextern NSString *const ALAssetsGroupPropertyURL;//組URL*/- (id)valueForProperty:(NSString *)property;//獲取當(dāng)前組的縮略圖海報- (CGImageRef)posterImage;//設(shè)置過濾器- (void)setAssetsFilter:(ALAssetsFilter *)filter;//獲取組中資源個數(shù)- (NSInteger)numberOfAssets;//進(jìn)行資源枚舉- (void)enumerateAssetsUsingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock;/*typedef NS_OPTIONS(NSUInteger, NSEnumerationOptions) {  NSEnumerationConcurrent = (1UL << 0),//順序枚舉  NSEnumerationReverse = (1UL << 1),  //逆序枚舉};*/- (void)enumerateAssetsWithOptions:(NSEnumerationOptions)options usingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock;- (void)enumerateAssetsAtIndexes:(NSIndexSet *)indexSet options:(NSEnumerationOptions)options usingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock;//獲取當(dāng)前組是否允許編輯@property (nonatomic, readonly, getter=isEditable) BOOL editable;//向組中添加一個資源- (BOOL)addAsset:(ALAsset *)asset;

上面有提到資源過濾器,資源過濾器用來設(shè)置過濾組中的資源,有3個類方法可以直接獲取系統(tǒng)提供的過濾器:

@interface ALAssetsFilter : NSObject {//所有圖片資源+ (ALAssetsFilter *)allPhotos;// 所有視頻資源+ (ALAssetsFilter *)allVideos;// 所有資源+ (ALAssetsFilter *)allAssets;@end

五、ALAsset資源對象

ALAsset是封裝好的資源對象類,如下方法可以獲取到資源中封裝的屬性:

- (id)valueForProperty:(NSString *)property;

屬性名的定義如下:

//獲取資源類型/*這個屬性將返回一個字符串extern NSString *const ALAssetTypePhoto//照片類型extern NSString *const ALAssetTypeVideo//視頻類型extern NSString *const ALAssetTypeUnknown//未知類型*/extern NSString *const ALAssetPropertyType;//會返回一個CLLocation對象 圖片的地址信息extern NSString *const ALAssetPropertyLocation;//視頻資源的時長 NSNumber對象extern NSString *const ALAssetPropertyDuration;//資源方向extern NSString *const ALAssetPropertyOrientation;//資源日期 會返回NSDate對象extern NSString *const ALAssetPropertyDate;

下面列舉了ALAsset中常用方法:

//獲取默認(rèn)的Representation對象- (ALAssetRepresentation *)defaultRepresentation;//獲取指定的Representation對象- (ALAssetRepresentation *)representationForUTI:(NSString *)representationUTI;//獲取資源縮略圖- (CGImageRef)thumbnail;- (CGImageRef)aspectRatioThumbnail;//寫入圖片數(shù)據(jù)- (void)writeModifiedImageDataToSavedPhotosAlbum:(NSData *)imageData metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;//寫入視頻數(shù)據(jù)- (void)writeModifiedVideoAtPathToSavedPhotosAlbum:(NSURL *)videoPathURL completionBlock:(ALAssetsLibraryWriteVideoCompletionBlock)completionBlock;//原始資源對象@property (nonatomic, readonly) ALAsset *originalAsset;//是否允許編輯@property (nonatomic, readonly, getter=isEditable) BOOL editable;//替換圖片數(shù)據(jù)- (void)setImageData:(NSData *)imageData metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;//替換視頻數(shù)據(jù)- (void)setVideoAtPath:(NSURL *)videoPathURL completionBlock:(ALAssetsLibraryWriteVideoCompletionBlock)completionBlock;

六、關(guān)于ALAssetRepresentation類

每一個ALAsset對象中都封裝了一個ALAssetRepresentation對象,這個對象的作用是獲取資源的詳細(xì)信息,解析如下:

//獲取UTI- (NSString *)UTI;//獲取資源的尺寸- (CGSize)dimensions;//獲取資源的大小- (long long)size;//讀取數(shù)據(jù)- (NSUInteger)getBytes:(uint8_t *)buffer fromOffset:(long long)offset length:(NSUInteger)length error:(NSError **)error;//獲取圖片數(shù)據(jù)- (CGImageRef)fullResolutionImage;- (CGImageRef)CGImageWithOptions:(NSDictionary *)options;//獲取全屏圖片- (CGImageRef)fullScreenImage;//獲取資源URL- (NSURL *)url;//獲取資源元數(shù)據(jù)- (NSDictionary *)metadata;//獲取資源方向- (ALAssetOrientation)orientation;//縮放比- (float)scale;//獲取資源名稱- (NSString *)filename;

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
综合成人在线| 国产在线视频一区二区三区| 成年人晚上看的视频| 丁香六月激情网| 久久精品影视| 精品国产免费无码久久久| 成人欧美精品一区二区| 日本久久久久久久久| 青青草视频在线观看| 欧美xxxx做受欧美护士| 99re8精品视频在线观看| 一级黄色免费网站| 国产麻豆免费观看| 欧洲伦理片一区 二区 三区| 日韩女优人人人人射在线视频| 91天堂在线观看| 久久在线视频| 欧美电影一区二区| 欧美精品999| 5858p先锋影音资源网| 天天操综合520| 国产日本欧美一区二区三区| 免费无码av片在线观看| 雨宫琴音一区二区在线| 亚洲永久精品视频| 久久精品首页| 2021国产视频| 亚洲午夜小视频| 波多野结衣不卡| 91亚洲一区二区| 一区二区三区四区在线| 性欧美1819sex性高清| 2018中文字幕在线观看| 亚洲免费伊人电影在线观看av| 不卡一区视频| 高h震动喷水双性1v1| 久久婷婷国产麻豆91天堂| 在线综合视频播放| 欧美视频一二区| 日韩国产一区二区三区| 亚洲日本精品视频| 久久成人精品一区二区三区| 少妇高潮一区二区三区99小说| 野外做受又硬又粗又大视频√| 超碰最新在线| 国产综合精品一区二区三区| 51自拍视频在线观看| 综合视频免费看| 一道精品视频一区二区三区男同| 麻豆成人入口| 污污影院在线观看| 成人污污视频在线观看| 无码人妻久久一区二区三区蜜桃| 亚洲精品小视频| 国产亚洲精品久久| 丝袜一区二区三区| 136福利视频| 夜夜嗨av色一区二区不卡| 99精品在免费线中文字幕网站一区| 伊人av在线| 波多野结衣家庭主妇| 99久久久无码国产精品衣服| 亚洲色图都市小说| 国产精品影视| 亚洲熟女乱色一区二区三区久久久| 成人午夜国产| 91网站视频在线观看| 极品色影院av| 欧美日韩亚洲天堂| 99精品国自产在线| 玛丽玛丽电影原版免费观看1977| 亚洲一区在线观| 国产一区二区在线播放| 亚洲精品国产视频| 天堂在线观看免费视频| 亚洲黄色精品| 在线看国产视频| 免费欧美在线视频| 精品国内一区二区三区免费视频| 91精品在线观看视频| 国产又黄又猛又粗又爽| 日韩精品一二三四区| 欧美一级一区二区| 精品免费国产| 国产专区第一页| 日本电影全部在线观看网站视频| 久久综合九色综合久| 女色窝人体色77777| 999国产精品视频免费| 4kfree性满足欧美hd18| 国产精品羞羞答答在线| 欧美成人女星排名| 一区二区成人免费视频| 欧美日韩一区在线观看| 欧美成人免费大片| 韩日精品视频一区| 残酷重口调教一区二区| 91丝袜美腿高跟国产极品老师| 亚洲第一在线| 久久久久国产精品区片区无码| 午夜亚洲影视| 亚洲精品一区二区三区四区五区| 求av网址在线观看| 国产精品初高中精品久久| 二区三区在线| 亚洲精品国产精品乱码不卡| 亚洲欧美日韩国产yyy| 一区二区三区视频免费| 男人添女荫道口图片| 黄色小视频在线播放| 久久久久久久久久久久国产精品| 国产成人av网站| 日本簧片在线观看| 中文字幕亚洲乱码| 四虎影视成人永久免费观看视频| 国产欧美啪啪| 在线观看黄网站| 亚洲最新色图| 另类一区二区三区| 91精品又粗又猛又爽| 久久97精品久久久久久久不卡| www.九色.com| 黑人狂躁日本妞一区二区三区| 另类小说一区二区三区| 日韩最新在线| 2018中文字幕一区二区三区| 亚洲aⅴ乱码精品成人区| 成a人片亚洲日本久久| 国内视频精品| 国产成人精品三级麻豆| 免费一级全黄少妇性色生活片| 国产毛片精品一区| 中文文字幕一区二区三三| 亚洲精品8mav| 欧美日韩亚洲系列| 好吊色在线视频| 亚洲成人av综合| 无码av中文一区二区三区桃花岛| 久久国产精品99久久久久久丝袜| 色偷偷一区二区三区| 136国产福利精品导航网址| 欧美午夜无遮挡| 色一情一乱一乱一区91| 好吊色视频988gao在线观看| 免费羞羞视频网站| 久久久久成人黄色影片| 欧美久久精品午夜青青大伊人| 久热综合在线亚洲精品| 欧美在线观看一区二区三区| 91精品一区二区三区在线观看| 日韩在线第二页| 欧美色123| 国产三级国产精品| 中文字幕日韩一区二区三区| 2025韩国大尺度电影| 麻豆国产欧美一区二区三区| 丁香花高清视频完整版在线观看| 永久免费无码av网站在线观看| 中文字幕国产高清| 91福利视频网站| 亚洲欧美精品suv| 精品久久亚洲| 亚乱亚乱亚洲乱妇| 久久亚洲综合色一区二区三区| 国产熟女一区二区三区五月婷| 第四色播日韩| 最新国产精品久久精品| 色噜噜狠狠一区二区三区果冻| 久草热久草热线频97精品| 91视频你懂的| 91精品婷婷国产综合久久性色| 亚洲精品少妇| 成年在线观看视频| 国产精品一线天粉嫩av| 97超碰色婷婷| 黄网页免费在线观看| 中文字幕乱在线伦视频中文字幕乱码在线| 18禁裸男晨勃露j毛免费观看| gogo高清免费视频| 成人免费视频国产免费观看| 成人做爰69片免费| 不卡电影免费在线播放一区| 纪美影视在线观看电视版使用方法| 亚洲v精品v日韩v欧美v专区| 无码人妻一区二区三区一| 久久视频精品在线| 日本视频在线观看| www.桃色.com| 岛国成人av| 在线观看av网站| 9久草视频在线视频精品| av毛片午夜不卡高**水| 亚洲高清国产拍精品26u| 91精品小视频| 在线播放性xxx欧美| 天天看天天摸天天操| 亚洲国产精品综合| 色七七在线观看| www久久久久| 在线免费看a| 9999在线精品视频| 麻豆专区一区二区三区四区五区| 青青草免费观看完整版高清| 成人在线观看亚洲| 国产精品久久久亚洲第一牛牛| 亚洲第一视频在线播放| 在线视频中文亚洲| 日韩熟女精品一区二区三区| 国偷自产av一区二区三区小尤奈| 成人午夜在线视频| 亚洲视频狠狠| 亚洲男人天堂2023| 欧美日一区二区三区在线观看国产免| 欧美日韩天天操| av高清在线| 亚洲精品成人在线| 欧美黄色精品| 日日干夜夜草| 精品久久久久久亚洲综合网| 成年人黄色片视频| 黄视频在线免费看| 成人h动漫精品一区| 国产乱子伦三级在线播放| 丰满人妻一区二区三区免费| 亚洲精品一区二区毛豆| 国产麻豆免费| 久久综合一区二区| 成人免费乱码大片a毛片软件| 日本老师69xxx| 亚洲一区www| 在线综合色站| 色婷婷综合久久久中字幕精品久久| 9i看片成人免费看片| 在线观看中文字幕码| 国产主播一区二区三区四区| 在线视频欧美区| 天堂久久精品忘忧草| 国产精品初高中精品久久| 1024手机看片国产| www.av88| 国产精久久一区二区| 欧美精品久久久久久久久25p| 懂色av一区二区| 亚洲成人毛片| avav免费在线观看| 国内外免费激情视频| 嫩草一区二区三区| 九九九九九九九九| 亚洲精品极品| 日本一二三区视频免费高清| 欧美1区2区3| 美女又爽又黄免费| 原创真实夫妻啪啪av| 亚洲最大的黄色网| 亚洲国产免费av| 国产精品高清无码在线观看| 欧美日韩三级视频| fc2ppv完全颜出在线播放| 日本一区二区免费在线| 免费国产自久久久久三四区久久| 日韩午夜黄色| 最新亚洲国产精品| 久久久久久久91| 麻豆md0077饥渴少妇| 天天做天天爱天天爽| 国产精品久久久久久久久久久久久久久久久| av在线三区| 91精品国产一区二区三区| 欧美精品videosex| 久久久精品国产一区二区| 久久久久欧美精品| 日本成人黄色| 国产精品日韩一区二区三区| 中文字幕日韩免费| 人与牲动交xxxxbbbb高清| 国内自拍视频在线播放| 午夜精品毛片| 国产精品igao激情视频| 欧美精品一区二区蜜臀亚洲| 91亚洲国产成人精品一区二三| 国产特黄大片aaaa毛片| 扒开伸进免费视频| 国产精品香蕉一区二区三区| 蜜桃av.网站在线观看| 国产日韩精品suv| 人禽交欧美网站免费| 欧美巨乳美女视频| 波多野结衣小视频| julia京香一区二区三区| 爱啪视频在线观看视频免费| 久久精品日韩| 亚洲国产天堂| 久在线观看视频| 99热只有这里有精品| 国产精品一区二区精品| 亚洲视频小说图片| 英国三级经典在线观看| 亚洲欧美日韩区| 日韩成人一级| 国产高中女学生第一次| 亚洲午夜剧场| 91麻豆产精品久久久久久夏晴子| 久久国产色av免费观看| 欧美视频在线一区| 青春草在线视频| 欧美丰满熟妇xxxxx| 污导航在线观看| 五月婷婷六月丁香| 国产va免费精品观看精品| 亚洲在线日韩| 一区二区视频网站| 视频在线不卡免费观看| 在线国产电影不卡| 99999色| 91精品久久久久久久91蜜桃| 羞羞免费视频| 国产成人综合在线视频| 国产视频aaa| 这里只有久久精品视频| 精品国产亚洲一区二区三区| 日韩亚洲色图| 精品无码在线观看| 性欧美猛交videos| 丰腴饱满的极品熟妇| 精品国产一区一区二区三亚瑟| 亚洲成人中文| 中文字幕第一页亚洲| eeuss影院eeuss最新直达|