Я просто потратил впустую, как 3 часа на это, и я не вижу, где я ошибаюсь.Воспроизведение локального видео с использованием AVPlayer
Я пытаюсь воспроизвести видео, которое я сохранил локально, используя AVPlayer. Это, как я запустить проигрыватель:
- (void)openVideo:(NSURL *)videoURL {
NSLog(@"Playing video with the url:\n%@", videoURL);
AVPlayer *player = [AVPlayer playerWithURL:videoURL];
AVPlayerViewController *playerViewController = [AVPlayerViewController new];
playerViewController.player = player;
[self presentViewController:playerViewController animated:YES completion:nil];
}
И это NSURL
я передаю:
+ (NSURL *)getURL:(NSString *)itemKey withType:(NSString *)itemType {
NSString *docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *dataFilePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: [NSString stringWithFormat:@"%@.%@", itemKey, itemType]]];
NSURL *itemURL;
if ([[NSFileManager defaultManager] fileExistsAtPath: dataFilePath]){ // if data exists
itemURL = [NSURL fileURLWithPath:dataFilePath];
}
else {
NSLog(@"The data requested does not exist! Returning an empty url file...");
itemURL = nil;
}
return itemURL;
}
Когда я бегу openVideo
, выход я получаю:
Playing video with the url:
/var/mobile/Containers/Data/Application/72C35DC4-9EF1-4924-91F4-EDA4BDB6AAD3/Documents/sample.vid
Но я продолжаю получать отключенный видеоплеер.
Что я делаю неправильно?
- это локальный файл, который вы пытаетесь воспроизвести с именем 'sample.vid', или просто переименовали его для кода, который вы выбрали в этом вопросе? Я думаю, что AVPlayer может использовать расширение (например, 'mov',' mp4' и т. Д.), Чтобы определить кодировку видео. –
@MichaelDautermann Файл переименован здесь, но он заканчивается 'vid'. Я попытался переименовать его в 'mp4', но это тоже не сработало. – Malfunction
Не указывайте его расширение '.vid'. Вы уверены, что это файл .mp4'? Вы можете открыть этот файл с помощью проигрывателя QuickTime на вашем Mac и/или мобильном Safari на вашем устройстве? –