#import "ViewController.h"
@implementation ViewController
-(void)moviePlayerDidFinish:(NSNotification *) aNote{
MPMoviePlayerController*player=[aNote object];
[[NSNotificationCenterdefaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
[player stop];
//[self dismissMoviePlayerViewControllerAnimated];
//[playerViewController release];
}
-(void)buttonClicked:(id)sender{
NSString*filePath=[[[NSBundlemainBundle] resourcePath] stringByAppendingPathComponent:@"b.mov"];
NSURL *movieURL=[NSURL fileURLWithPath:filePath];
playerViewController=[[MPMoviePlayerViewControlleralloc]initWithContentURL:movieURL];
[[NSNotificationCenterdefaultCenter] addObserver:self
selector:@selector(moviePlayerDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
[selfpresentMoviePlayerViewControllerAnimated:playerViewController];
}
老是报错呀,编译就不通过,怎么办?
MediaPlayer.framework 已经引入了,就是编译不通过。想了一个下午了
ld: warning: ignoring file /Users/user/自己的程序/MoviePlayer/MediaPlayer.framework/MediaPlayer, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MPMoviePlayerViewController", referenced from:
objc-class-ref in ViewController.o
"_MPMoviePlayerPlaybackDidFinishNotification", referenced from:
-[ViewController moviePlayerDidFinish:] in ViewController.o
-[ViewController buttonClicked:] in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
错误信息好像是找不到MPMoviePlayerPlaybackDidFinishNotification一样的,可是我的framework真的引入了,好像framework的引入菜单变了,还是我引入的方法不对?
------解决方案--------------------
选的CPU体系结构不对,应该是arm的而不是i386的。
i386是桌面的。
------解决方案--------------------
这个错误貌似遇到过。
是在调用某静态库的时候出的这个错。
不过最后没搞定,直接用源代码了。
你再看看把。此错误很郁闷的说。。
------解决方案--------------------
以下可能对你有帮助:
http://www.cnblogs.com/ynwlgh/archive/2011/10/25/2223552.html