2014-11-05 3 views
0

Я пытаюсь воспроизвести видео с MPMoviePlayerController таким путем:IOS - Я не могу воспроизвести видео с MPMoviePlayerController

var url:NSURL = NSURL(fileURLWithPath: "/var/mobile/Containers/Data/Application/D64F96C8-B00F-41D8-AC38-DB07121D00FA/Documents/video_comp.mov", isDirectory: false) 

    if (NSFileManager.defaultManager().fileExistsAtPath(url.path!)) { 
     println("FILE EXISTS") //File exists 
    } else { 
     println("FILE DOESN'T EXIST") 
    } 

    var moviePlayer = MPMoviePlayerController(contentURL: url) 
    moviePlayer.view.frame = CGRectMake(0, 0, 200, 200) 
    self.view.addSubview(moviePlayer.view) 

    moviePlayer.scalingMode = MPMovieScalingMode.AspectFit 
    moviePlayer.shouldAutoplay = true 
    moviePlayer.prepareToPlay() 

    if moviePlayer.isPreparedToPlay { 
     println("PREPARED") 
    } else { 
     println("NOT PREPARED") //.isPreparedToPlay is always false 
    } 

    moviePlayer.play() 

Но он никогда не воспроизводится. Прежде всего, я проверил, существует ли файл и существует. Затем я проверил, является ли moviePlayer isPrepraredToPlay, но кажется, что он не подготовлен перед игрой. У вас есть идея, почему я не могу воспроизвести его?

Благодаря

+1

http://stackoverflow.com/questions/25034497/playing-a-video-file-from-a-server-in-swift – user523234

+0

Спасибо за ваш комментарий @ user523234 Я попытался выполнить этот ответ, но это не так, т работает для меня. Возможно, объект MPMoviePlayerController вызывает ошибку. – Alex

ответ

2

это работает для меня:

myPlayer = [[MPMoviePlayerController alloc] init]; 
[myPlayer setScalingMode:MPMovieScalingModeAspectFit]; 
// [myPlayer setControlStyle:MPMovieControlStyleFullscreen]; 
[myPlayer setContentURL:[NSURL fileURLWithPath:filePath]]; 
myPlayer.movieSourceType = MPMovieControlStyleEmbedded; 
//myPlayer.fullscreen = YES; 
myPlayer.view.frame = CGRectMake(0, 0, 200, 200); //self.view.bounds; 
[myPlayer prepareToPlay]; 
if(myPlayer.isPreparedToPlay){ 
    NSLog(@"preparada para verse!"); 
} else { 
    NSLog(@"No preparada para verse!"); 
} 
[self.view addSubview:myPlayer.view]; 
[myPlayer play]; 

В моем приложении я использую полноэкранное видео, но я положил в комментариях полноэкранного код и я изменил self.view.bounds для ваш размер: CGRectMake (0,0,200,200). Самое смешное, что я также получаю сообщение не подготовленное, но видео работает отлично! Надеюсь, эта помощь!

Смежные вопросы