2011-01-17 2 views
2

делает initWithContentURL: в MPMoviePlayerController сначала загружает видеофайл, а затем начинает воспроизведение или будет ли он передавать файл, как на YouTube?как поместить видео в iphone

Я хочу воспроизвести видео, расположенное на сервере, посредством потоковой передачи, чтобы не тратить время.

Как выполнить потоковое вещание в iphone? Может кто-нибудь, пожалуйста, предложите мне, если вы знаете.

Заранее спасибо.

ответ

1
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

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

if (!documentsDirectory) { 
    NSLog(@"Documents directory not found!"); 
} 
NSString *appFile; 
NSArray *myWords = [[NSString stringWithFormat:@"%@",[[videolistArray objectAtIndex:[number intValue]] valueForKey:@"video"]] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"/"]]; 
appFile = [documentsDirectory stringByAppendingPathComponent:[myWords lastObject]]; 
NSFileManager *fileMgr=[NSFileManager defaultManager]; 
if (![fileMgr fileExistsAtPath:appFile]) { 
    NSData *imageData; 
    NSURL *imageURL = [[[NSURL alloc] initWithString:[[videolistArray objectAtIndex:[number intValue]] valueForKey:@"video"] ] autorelease]; 
    if (imageURL) { 
     imageData = [NSData dataWithContentsOfURL:imageURL]; 
    } 

    [imageData writeToFile:appFile atomically:YES]; 
} 
[pool release]; 


if (spinner) { 
    [spinner stopAnimating]; 
    [spinner removeFromSuperview]; 
    [spinner release]; 
    spinner = nil; 
} 

--------------------------- Над Methode для сохранения видео в файловой системе Iphone
--- ----------------- Ниже метод воспроизведения этого фильма непрерывности

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

NSString *documentsDirectory = [paths objectAtIndex:0]; 

if (!documentsDirectory) { 

    NSLog(@"Documents directory not found!"); 

} 

NSArray *myWords = [videoString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"/"]]; 


NSString *appFile = [documentsDirectory stringByAppendingPathComponent:[myWords lastObject]]; 

NSLog(@"%@",[myWords lastObject]); 

NSURL *url = [NSURL fileURLWithPath:appFile]; 

self.videoMPPlayer =[[MPMoviePlayerController alloc] initWithContentURL:url]; 

    self.videoMPPlayer.view.frame = CGRectMake(0, 0, 320, 480); 

    self.videoMPPlayer.scalingMode = MPMovieScalingModeAspectFill; 

    self.videoMPPlayer.controlStyle = MPMovieControlStyleNone; 


    // Register for the playback finished notification 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieLoadStateChanges:) name:MPMoviePlayerLoadStateDidChangeNotification object:videoMPPlayer]; 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:videoMPPlayer]; 


// Movie playback is asynchronous, so this method returns immediately. 
[self.videoMPPlayer play]; 
+0

Привет., Спасибо, за ответ, мы должны скачать полный файл перед запуском играть? Невозможно скачать как потоковое? есть ли какой-либо другой параметр, кроме MPMoviePlayer для потокового видеофайла? – SriPriya

+0

для этого просто используйте следующий код из NSURL * url = [NSURL fileURLWithPath: @ "Link of vidoe"]; – GhostRider

+0

преобразование строки url в NSURl, и если я использовал в initWithContentURL:, проигрыватель начнет играть после получения данных из веб-службы, до тех пор, пока игрок ничего не сыграет, мне нужно получить данные видеофайлов из webservice, а также воспроизвести полученные данные одновременно, так как youtube извлекает данные и воспроизводит одновременно. – SriPriya