MPMoviePlayerController:如何在requestThumbnailImagesAtTimes:timeOption期间关闭声音:

时间:2014-07-03 14:30:05

标签: ios media-player mpmovieplayercontroller

在我的应用程序中,我录制了一部电影,将其保存到PhotosAlbum,然后请求使用代码创建缩略图

self.player = [[MPMoviePlayerController alloc] initWithContentURL:videoURL_];
NSArray *times = @[@(1.1)];
[self.player requestThumbnailImagesAtTimes:times timeOption:MPMovieTimeOptionNearestKeyFrame];  

这很好用,但在创建缩略图时,MPMoviePlayerController播放电影的声音,虽然电影不可见,这很烦人。
如何关闭此特定MPMoviePlayerController的声音MPMoviePlayerController类显然没有控制它的属性。

2 个答案:

答案 0 :(得分:0)

根据How to mute/unmute audio when playing video using MPMoviePlayerController?中的答案,无法关闭MPMoviePlayerController的声音。
但是我在Creating Thumbnail for Video in iOS中找到了一种更简单的创建缩略图的方法,它不会播放声音并且是同步的,因此不需要处理异步回调。
为方便起见,我在这里复制:

  1. AVFoundation框架添加到您的应用中。
  2. #import <AVFoundation/AVFoundation.h>
  3. 添加以下代码:

    UIImage *theImage = nil; AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:contentURL options:nil]; AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; generator.appliesPreferredTrackTransform = YES; NSError *err = NULL; CMTime time = CMTimeMake(1, 60); CGImageRef imgRef = [generator copyCGImageAtTime:time actualTime:NULL error:&err]; theImage = [[UIImage alloc] initWithCGImage:imgRef]; CGImageRelease(imgRef);

答案 1 :(得分:0)

在创建播放器后添加此行:

self.player.shouldAutoplay = NO;