На самом деле вы можете получить исходный URL-адрес видео, не сжатую версию, с помощью следующего кода:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSString *mediaType = info[UIImagePickerControllerMediaType];
NSString *videoString = (NSString *)kUTTypeVideo;
NSString *movieString = (NSString *)kUTTypeMovie;
if ([mediaType isEqualToString:videoString] || [mediaType isEqualToString:movieString]) {
NSURL *videoRef = info[UIImagePickerControllerReferenceURL];
PHFetchResult *refResult = [PHAsset fetchAssetsWithALAssetURLs:@[videoRef] options:nil];
PHVideoRequestOptions *videoRequestOptions = [[PHVideoRequestOptions alloc] init];
videoRequestOptions.version = PHVideoRequestOptionsVersionOriginal;
[[PHImageManager defaultManager] requestAVAssetForVideo:[refResult firstObject] options:videoRequestOptions resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
if ([asset isKindOfClass:[AVURLAsset class]]) {
NSURL *originURL = [(AVURLAsset *)asset URL];
// Now you have the URL of the original video.
}
}];
}
}
В качестве напоминания запрос requestAVAssetForVideo является асинхронным, поэтому будьте осторожны, когда вы хотите хранить URL-адрес с заблокированной переменной вне блока вызова метода.
Из вашего описания звучит, что вы пытаетесь вставить хук pre-receive
в ваш локальный репозиторий. Это не так, как надо - крючок pre-receive
должен быть на вашем пульте. Если вы хотите запустить что-то локально, прежде чем нажать, используйте хук pre-push
.
В документации есть несколько других хуков, которые вы также можете найти полезными.