2016-07-29 38 views
6

enter image description here Używam AVPlayera do odtwarzania filmów. Nie mogłem odtwarzać filmów w formacie MP4. Otrzymuję ten czarny ekran. tutaj jest mój kod.Nie można odtwarzać filmów MP4 w AVPlayer

`NSString *filePath = [self.videoArray objectAtIndex:index]; 
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:filePath ofType: @"mp4]; 
url = [[NSURL alloc] initFileURLWithPath: soundFilePath]; 
playerViewController = [[AVPlayerViewController alloc] init]; 
playerViewController.videoGravity = AVLayerVideoGravityResize; 
playerViewController.view.frame = self.view.bounds; 
playerViewController.showsPlaybackControls = NO; 
video=[AVPlayer playerWithURL:url]; 
playerViewController.player = _video; 
playerViewController.view.userInteractionEnabled = false; 
[video play]; 
[self.view addSubview:playerViewController.view];` 
+0

Stosowanie ścieżki pliku "NSLog" lub pliku kontrolnego punktu kontrolnego lub pliku soundFilePath ma poprawną wartość, czy nie? Podaj także więcej szczegółów, np. Historię błędów. –

+0

'NSInvalidArgumentException', powód: '*** - [NSURL initFileURLWithPath:]: parametr ciągu nil' – Bharathi

+1

Twój adres URL jest nieprawidłowy. 'self.video_Array' w tej tablicy, które adresy URL istnieją, jest to link HTTP lub lokalny URL. –

Odpowiedz

5

Spróbuj tego kodu Myślę, że będzie działał dla Ciebie, ponieważ wygląda na to, że Twój adres URL nie jest przeznaczony do pakowania z sieci.

// your filepath which is may be "http" type 
NSString *filePath = [self.video_Array objectAtIndex:index]; 
// http to NSURL using string filepath 
NSURL *url= [[NSURL alloc] initWithString:filePath]; 
AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init]; 
playerViewController.videoGravity = AVLayerVideoGravityResize; 
playerViewController.view.frame = self.view.bounds; 
playerViewController.showsPlaybackControls = NO; 
video=[AVPlayer playerWithURL:url]; 
playerViewController.player = _video; 
playerViewController.view.userInteractionEnabled = false; 
[video play]; 
[self.view addSubview:playerViewController.view]; 
+0

Dziękuję. Dodałem 2 pliki wideo o tej samej nazwie. To był problem. – Bharathi