IOS 如何擷取裝置本地音視頻

來源:互聯網
上載者:User

IOS 如何擷取裝置本地音視頻

1、檢索音視頻

 

PHFetchOptions *allPhotosOptions;@property (nonatomic, strong) PHFetchResult *assetsFetchResults;if (allPhotosOptions == nil) {                allPhotosOptions = [[PHFetchOptions alloc] init];        allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];    } self.assetsFetchResults = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:allPhotosOptions];

 

 

其中assetsFetchResults儲存了所有的圖片資訊,PHAssetMediaTypeImage為搜尋圖片的類型,同樣的搜尋其他類的可以根據

 

typedef NS_ENUM(NSInteger, PHAssetMediaType) {    PHAssetMediaTypeUnknown = 0,    PHAssetMediaTypeImage   = 1,    PHAssetMediaTypeVideo   = 2,    PHAssetMediaTypeAudio   = 3,} NS_ENUM_AVAILABLE_IOS(8_0);
2、擷取圖片UIImage

 

 

[[PHCachingImageManager defaultManager] requestImageForAsset:asset                                    targetSize:AssetGridThumbnailSize                                   contentMode:PHImageContentModeAspectFill                                       options:nil                                 resultHandler:^(UIImage *result, NSDictionary *info) {                                     // Set the cell's thumbnail image if it's still showing the same asset.                                     if ([cell.representedAssetIdentifier isEqualToString:asset.localIdentifier]) {                                         cell.thumbnailImage = result;                                     }                                 }];
asset為assetsFetchResults中的一個PHAsset,targetSize是擷取圖片的大小,這個根據你顯示的方式設定,如果需要擷取圖片其他資訊比如標題可以採用
[phAsset valueForKey:@"filename"];

3、播放視頻

 

-(void)setVideoAsset:(PHAsset *)videoAsset{    _videoAsset = videoAsset;    [[PHImageManager defaultManager] requestPlayerItemForVideo:_videoAsset options:nil resultHandler:^(AVPlayerItem * _Nullable playerItem, NSDictionary * _Nullable info) {        self.currentItem = playerItem;        [self.player replaceCurrentItemWithPlayerItem:self.currentItem];        [self.currentItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];    }];}


 





 



 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.