0

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

}
4

2 回答 2

2

一方面,没有initWithURL:byReference:方法。创建 QTMovie 对象的方法有很多种,但没有一种方法有byReference:参数,所有方法(除了+movie)都带有error:输出参数。

加载影片后,您需要将其交给QTMovieView以显示。创建此类视图的最简单方法是在 IB 中,将其从库面板(QuickTime Kit 部分)拖到您的一个 xib 中的一个窗口中。

然后,要么在你的控制器中有一个到电影视图的出口,并在创建电影后向电影视图发送setMovie:消息,或者将电影视图的“电影”属性绑定到控制器的属性。

于 2010-01-16T09:12:46.463 回答
1

I always use the initWithFile: method of 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:

If you want to use NSURL, use the following:

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]);
}
于 2010-01-16T08:12:34.030 回答