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