播放位于应用程序包中的QT电影

时间:2010-01-16 07:32:11

标签: qtkit

我正在尝试运行位于我的应用程序包中的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];

}

2 个答案:

答案 0 :(得分:2)

首先,没有initWithURL:byReference:方法。有many ways to create a QTMovie object,其中没有一个参数byReference:,所有参数(+movie除外)都采用error:输出参数。

加载电影后,您需要将其移至QTMovieView才能显示。创建这样一个视图的最简单方法是在IB中,将它从“库”面板(QuickTime Kit部分)拖到一个xib中的窗口。

然后,在控制器中有一个插座到电影视图,并在创建电影后向电影视图发送setMovie:消息,或将电影视图的“电影”属性绑定到控制器的属性。 / p>

答案 1 :(得分:1)

我总是使用QTMovie的initWithFile:方法:

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]);
}

<强>更新

如果您想使用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]);
}