视频在模拟器中播放,但在真实设备上播放

时间:2017-02-24 12:32:41

标签: ios objective-c video avplayerviewcontroller

视频正在模拟器中播放但不在真实设备上播放。它存储在本地文件路径中。从图库中选择视频后,我正在压缩视频并将数据存储在文档目录中。这是代码。

视频压缩:

- (void)compressVideo:(NSURL*)inputURL
        outputURL:(NSURL*)outputURL
          handler:(void (^)(AVAssetExportSession*))handler
{
   [[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil];
   AVURLAsset *asset = [AVURLAsset URLAssetWithURL:inputURL options:nil];
   AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetMediumQuality];
   exportSession.outputURL = outputURL;
   exportSession.outputFileType = AVFileTypeMPEG4;
  [exportSession exportAsynchronouslyWithCompletionHandler:^(void)
  {
     handler(exportSession);
  }];
}

在此处存储压缩视频:

[self compressVideo:sourceURL outputURL:uploadURL handler:^(AVAssetExportSession *completion) {
 if (completion.status == AVAssetExportSessionStatusCompleted) {
    NSData *newDataForUpload = [NSData dataWithContentsOfURL:uploadURL];
   // ...
 }
];

这是sourceURL和UploadURL

NSURL *sourceURL = [(AVURLAsset *)asset URL];
NSURL* uploadURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"temporaryPreview.mov"]];

0 个答案:

没有答案