Воспроизвести загруженное видео MPMovieController - PullRequest
0 голосов
/ 16 марта 2012

Поэтому я использую ASIHTTPRequest для загрузки видеофайла с моего FTP. Он загружается, и я получаю это в качестве пути к файлу каталога:

/Users/Matt_Sich/Library/Application Support/iPhone Simulator/5.0/Applications/B7366FF2-7592-4ED0-ABC2-46BA111D0FF4/Documents/INWD.mp4

Хорошо, теперь я хочу воспроизвести это видео .... Я представляю, что это будет легко, но по какой-то причине мне не удается заставить его работать. Все, что я получаю, это черный вид и все.

//NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Park_iPod" ofType:@"mp4"]];
NSURL *url = [NSURL URLWithString:self.PathString];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];

[self.view addSubview:moviePlayer.view];
[moviePlayer setFullscreen:YES animated:YES];

(ПРИМЕЧАНИЕ. Self.PathString - это путь к загруженному файлу, о котором я упоминал выше) Он прекрасно воспроизводит видео из основного пакета, поэтому я уверен, что с путем к файлу что-то не так.

Ответы [ 3 ]

3 голосов
/ 16 марта 2012

После того, как вы загрузили файл, вам нужно использовать fileURLWithPath для доступа к файлу, а не URLWithString

NSURL *url = [NSURL fileURLWithPath.PathString];
1 голос
/ 16 марта 2012
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:([NSURL fileURLWithPath : self.PathString])];

    [moviePlayer setShouldAutoplay:NO];
    [moviePlayer setFullscreen:YES animated:YES];
    [moviePlayer setScalingMode:MPMovieScalingModeAspectFit];

    // Register for the playback finished notification
    [[NSNotificationCenter defaultCenter] 
        addObserver: self
        selector: @selector(movieFinishedCallback:)
        name: MPMoviePlayerPlaybackDidFinishNotification
        object: moviePlayer];

    // Register that the load state changed (movie is ready)
    [[NSNotificationCenter defaultCenter] 
        addObserver:self 
        selector:@selector(moviePlayerLoadStateChanged:) 
        name:MPMoviePlayerLoadStateDidChangeNotification 
        object: moviePlayer];

    [self.view addSubview: moviePlayer.view];
    [moviePlayer.view setFrame: self.view.bounds];

    [moviePlayer prepareToPlay];
1 голос
/ 16 марта 2012

Это даст вам каталог документов ...

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
...