【问题标题】:How to convert the video picked from gallery into NSData using video url in ios?如何使用 ios 中的视频 url 将从图库中挑选的视频转换为 NSData?
【发布时间】: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 他们是本地视频...从相机录制

标签: objective-c video ios9 nsdata phasset


【解决方案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];

【讨论】:

    猜你喜欢
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 2023-03-28
    相关资源
    最近更新 更多