如何使用 ios 中的视频 url 将从图库中挑选的视频转换为 NSData?

Posted

技术标签:

【中文标题】如何使用 ios 中的视频 url 将从图库中挑选的视频转换为 NSData?【英文标题】:How to convert the video picked from gallery into NSData using video url in ios? 【发布时间】:2017-04-17 11:50:11 【问题描述】:

我已经使用 Photo 框架在 collectionview 中展示了所有画廊的视频。我已经从 PHCachingImageManager (PHAsset lib) 中提取了视频网址,如下所示:

[imageManager requestAVAssetForVideo:asset options:nil resultHandler:^(AVAsset *avAsset, AVAudioMix *audioMix, NSDictionary *vidInfo) 
        // Use the AVAsset avAsset
        AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:avAsset];
        AVPlayer *videoPlayer = [AVPlayer playerWithPlayerItem:playerItem];

        NSURL *vUrl=[self urlOfCurrentlyPlayingInPlayer:videoPlayer];
        NSString *url=[NSString stringWithFormat:@"%@",vUrl];

        if (url.length>0) 
            [videoInfo addObject:url];
        
    ];

由于我必须上传所选视频,所以我将其转换为 nsdata,如下所示:

NSData* data = [NSData dataWithContentsOfFile:selectedFileUrl  options:0 error:&error];

获取如下 URL:video url=file:///var/mobile/Media/DCIM/100APPLE/IMG_0165.MOV

但我总是将数据设为 null。

我在这里做错了什么?请帮忙!

谢谢!!!

【问题讨论】:

NSData * data =[NSData dataWithContentsOfURL:[NSURL URLWithString: selectedFileUrl]];检查这个 试用:NSData *videoData = [NSData dataWithContentsOfURL:videoURL]; 谢谢@NAVEENKUMAR。我试过你们说的......仍然没有成功 那么您的网址出现问题...您从本地获取视频的路径...保存的视频..? 是的@NAVEENKUMAR 他们是本地视频...从相机录制 【参考方案1】:

检查一下:

  NSData* data = [NSData dataWithContentsOfFile::[NSURL URLWithString: selectedFileUrl]  options:nil error:&error];

【讨论】:

通常最好在你的答案中解释代码。讲述它是如何工作的或者你到底在做什么。这有助于新开发人员准确了解正在发生的事情。【参考方案2】:

试试看

[imageManager requestAVAssetForVideo:asset options:nil resultHandler:^(AVAsset *avAsset, AVAudioMix *audioMix, NSDictionary *vidInfo) 
        // Use the AVAsset avAsset
        AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:avAsset];
        AVPlayer *videoPlayer = [AVPlayer playerWithPlayerItem:playerItem];

        NSURL *vUrl=[self urlOfCurrentlyPlayingInPlayer:videoPlayer];
        if (vUrl) 
            [videoInfo addObject:vUrl];
        
    ];

现在您可以使用以下方式获取数据:NSData *videoData = [NSData dataWithContentsOfURL:videoURL];

【讨论】:

以上是关于如何使用 ios 中的视频 url 将从图库中挑选的视频转换为 NSData?的主要内容,如果未能解决你的问题,请参考以下文章

如何避免将从相机胶卷中挑选的图像保存到相机胶卷? [iOS]

将视频保存到图库并获取存储到图库的视频的路径

iOS:从网址下载视频并保存在图库中......?

从 android 中具有大小限制的图库中选择视频

将视频资产保存到图库后检索

Android 让用户从图库或相机中挑选/捕捉照片