2010-01-16 3 views
0

Я пытаюсь запустить QT Movie, который находится в моем приложении. Не могу заставить его работать. Может ли кто-нибудь посоветовать?Прослушать фильм QT, расположенный в комплекте приложений

спасибо.

Пол

-(IBAction)runInternalMovie:(id)sender 

[ 


NSString *internalPath; 
NSURL *internalURL; 
QTMovie *internalMovie; 



internalPath = [[NSBundle mainBundle] pathForResource: @"bundledMovie" 
ofType: @"mp4"]; 
internalURL = [NSURL fileURLWithPath: internalPath]; 
internalMovie = [[QTMovie alloc] initWithURL: internalURL byReference: YES]; 

} 

ответ

1

Я всегда использую initWithFile: метод QTMovie:

NSError* error = nil; 
NSString* moviePath = [NSBundle pathForResource:@"bundledMovie" ofType:@"mp4" inDirectory:[[NSBundle mainBundle] bundlePath]]; 
QTMovie* movie = [QTMovie movieWithFile:moviePath error:&error]; 
if(movie != nil) 
{ 
    [movieView setMovie:movie]; 
} 
else 
{ 
    NSLog(@"Error loading movie: %@", [error localizedDescription]); 
} 

Update:

Если вы хотите использовать NSURL, используйте следующее:

NSError* error = nil; 
QTMovie* movie = [QTMovie movieWithURL:[[NSBundle mainBundle] URLForResource:@"bundledMovie" withExtension:@"mp4"] error:&error]; 
if(movie != nil) 
{ 
    [movieView setMovie:movie]; 
} 
else 
{ 
    NSLog(@"Error loading movie: %@", [error localizedDescription]); 
} 
2

С одной стороны, нет метода initWithURL:byReference:. Есть many ways to create a QTMovie object, ни один из которых не имеет параметра byReference: и все (за исключением +movie) принимают выходной параметр error:.

Как только вы загружаете фильм, вам нужно передать его QTMovieView для его отображения. Самый простой способ создать такое представление - в IB, перетащив его из панели библиотеки (раздел QuickTime Kit) в окно в одном из ваших xib.

Затем, у вас есть розетка в вашем контроллере для просмотра видео и отправьте просмотр фильма setMovie: после создания фильма или привяжите свойство фильма «Фильм» к свойству вашего контроллера.

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

  • Нет связанных вопросов^_^