iOS獲取本地沙盒視頻封面圖片(含swift實現)


最近做了個小應用,有涉及到本地視頻播放及列表顯示。

其中一個知識點就是獲取本地存儲視頻,用來界面中的封面顯示。

記錄如下:

//videoURL:本地視頻路徑    time:用來控制視頻播放的時間點圖片截取                 
-(UIImage*) thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time {
  
  AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
  NSParameterAssert(asset);
  AVAssetImageGenerator *assetImageGenerator =[[AVAssetImageGenerator alloc] initWithAsset:asset];
  assetImageGenerator.appliesPreferredTrackTransform = YES;
  assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels;
  
  CGImageRef thumbnailImageRef = NULL;
  CFTimeInterval thumbnailImageTime = time;
  NSError *thumbnailImageGenerationError = nil;
  thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60)actualTime:NULL error:&thumbnailImageGenerationError];
  
  if(!thumbnailImageRef)  
      NSLog(@"thumbnailImageGenerationError %@",thumbnailImageGenerationError);  
  
  UIImage*thumbnailImage = thumbnailImageRef ? [[UIImage alloc]initWithCGImage: thumbnailImageRef] : nil;  
  
  return thumbnailImage;  
}
   

  

 

獲得的Image直接顯示即可。

 

如果想獲取網絡圖片,只要替換NSURL方式即可。

 

[NSURL  URLWithString:@"network url"]

 

.PS:

swift實現:

/// 獲取本地video的封面截圖
    ///
    /// - Parameter url: <#url description#>
    /// - Returns: <#return value description#>
    func getVideoFengMian(url:String) -> UIImage {
        if url.isEmpty {
            //默認封面圖
            return UIImage(named: "screenVideo")!
        }
        let aset = AVURLAsset(url: URL(fileURLWithPath: url), options: nil)
        let assetImg = AVAssetImageGenerator(asset: aset)
        assetImg.appliesPreferredTrackTransform = true
        assetImg.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels
        do{
            let cgimgref = try assetImg.copyCGImage(at: CMTime(seconds: 10, preferredTimescale: 50), actualTime: nil)
            return UIImage(cgImage: cgimgref)           
            
            
        }catch{
            return UIImage(named: "screenVideo")!
        }
        
    }

參數是本地url,可以根據需求自行更改參數等,這里只給個參考。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM