【问题标题】:Objective-c, Is there any way fetch video thumbnail from URL instead using MPMoviePlayerController and AVAssetImageGenerator?Objective-c,有没有办法从 URL 获取视频缩略图而不是使用 MPMoviePlayerController 和 AVAssetImageGenerator?
【发布时间】:2015-09-07 21:23:58
【问题描述】:

我想从 URL 获取视频缩略图,而不是使用 MPMoviePlayerControllerAVAssetImageGenerator。因为这些都有问题。我已经问过的问题,

第一个是: AVAssetImageGenerator not working properly, I am unable to fetch thumbnail of video from URL

第二个是: https://stackoverflow.com/questions/32431311/mpmovieplayercontroller-not-fetching-thumbnail-of-video-from-url-properly

我不知道该怎么做。任何建议都会很棒。提前致谢!!!

【问题讨论】:

    标签: ios objective-c iphone mpmovieplayercontroller video-thumbnails


    【解决方案1】:

    您只需在您的网址和self.imageView.image = FrameImage;下方发表评论

    无论如何。

    NSString *str=@"https://scontent.cdninstagram.com/hphotos-xfa1/t50.2886-16/11719145_918467924880620_816495633_n.mp4";
    NSURL *url=[[NSURL alloc]initWithString:str];
    
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:url options:nil];
    AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
        generator.appliesPreferredTrackTransform=TRUE;
    NSError *error = NULL;
    CMTime thumbTime = CMTimeMakeWithSeconds(0,30);
    
    CGImageRef refImg = [generator copyCGImageAtTime:thumbTime actualTime:NULL error:&error];
    if(error) {
        NSLog(@"%@", [error localizedDescription]);
    }
    UIImage *FrameImage= [[UIImage alloc] initWithCGImage:refImg];
    [self.imageView setImage:FrameImage];
    

    【讨论】:

    • @ Moldaone ,请您阅读我的要求和您告诉我的内容。请仔细阅读我的问题+我的最新评论,然后给出答案。谢谢..
    • @Monusingh 现在的问题是:为什么你不想使用 AVFoundation ?您对AV 有哪些问题?
    • @ Moldanone,我已经在我的问题中定义了,请参阅我的问题的顶部(在此页面中),我已经定义了 2 个问题。谢谢
    • @Monusingh 你试过代码了吗?因为一切正常,下面的代码可以毫无问题地获取缩略图。
    • @ Moldanone,我已经尝试过我自己的代码,如果工作正常,让我试试你的代码,然后从我这边 +1。谢谢..
    【解决方案2】:

    试试这个。

    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL URLWithString:@"[video URL]"] options:nil];
    AVAssetImageGenerator *generateImg = [[AVAssetImageGenerator alloc] initWithAsset:asset];
    NSError *error = NULL;
    CMTime time = CMTimeMake(1, 65);
    CGImageRef refImg = [generateImg copyCGImageAtTime:time actualTime:NULL error:&error];
    NSLog(@"error==%@, Refimage==%@", error, refImg);
    
    UIImage *FrameImage= [[UIImage alloc] initWithCGImage:refImg];
    

    【讨论】:

    • @Moldaone,我要求使用 MPMoviePlayerController 和 AVAssetImageGenerator 从 URL 获取视频缩略图。请给出另一种解决方案。谢谢
    猜你喜欢
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 2011-10-12
    • 1970-01-01
    • 2012-02-03
    • 2020-05-16
    相关资源
    最近更新 更多