你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS截取視頻縮略圖的兩種方法

iOS截取視頻縮略圖的兩種方法

編輯:IOS開發綜合

前言: 看完了使用MPMoviePlayerController播放在線視頻,在實際應用中有時候需要獲取視頻的縮略圖,我們來看看如何截取指定時間內的視頻縮略圖。

 

一 使用MPMoviePlayerController自帶的方法

 

 

- (void)requestThumbnailImagesAtTimes:(NSArray *)playbackTimes timeOption:(MPMovieTimeOption)option NS_AVAILABLE_IOS(3_2);


 

 

/**
 *  視頻截圖
 */
- (void)getMovieThumImage
{
   [self.moviePlayer requestThumbnailImagesAtTimes:@[@(1.0),@(5.0)] //設置截圖時間點 1s和5s的時候
                                        timeOption:MPMovieTimeOptionNearestKeyFrame];
}

 [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(thumImageGet:)
                                                 name:MPMoviePlayerThumbnailImageRequestDidFinishNotification   //視頻縮略圖截取成功時調用
                                               object:nil];

/**
 *  截圖完成,每截取一張,會調取一次
 *
 *  @param noti <#noti description#>
 */
- (void)thumImageGet:(NSNotification *)noti
{
    UIImage *thumImage = [[noti userInfo] objectForKey:MPMoviePlayerThumbnailImageKey];
    UIImageWriteToSavedPhotosAlbum(thumImage, nil, nil, nil);
}

二 使用AVAssetImageGenerator

 

 

  1. 創建AVURLAsset對象(此類主要用於獲取媒體信息,包括視頻、聲音等)。
  2. 根據AVURLAsset創建AVAssetImageGenerator對象。
  3. 使用AVAssetImageGenerator的copyCGImageAtTime::方法獲得指定時間點的截圖。

     

     

    #import 
    
    
    - (void)assetGetThumImage:(CGFloat)second { AVURLAsset *urlSet = [AVURLAsset assetWithURL:[self url]]; AVAssetImageGenerator *imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:urlSet]; NSError *error = nil; CMTime time = CMTimeMake(second,10);//縮略圖創建時間 CMTime是表示電影時間信息的結構體,第一個參數表示是視頻第幾秒,第二個參數表示每秒幀數.(如果要活的某一秒的第幾幀可以使用CMTimeMake方法) CMTime actucalTime; //縮略圖實際生成的時間 CGImageRef cgImage = [imageGenerator copyCGImageAtTime:time actualTime:&actucalTime error:&error]; if (error) { NSLog(@截取視頻圖片失敗:%@,error.localizedDescription); } CMTimeShow(actucalTime); UIImage *image = [UIImage imageWithCGImage:cgImage]; UIImageWriteToSavedPhotosAlbum(image,nil, nil,nil); CGImageRelease(cgImage); NSLog(@視頻截取成功); } 

     

    
    

     

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved