标签:
(1)使用媒体播放,需要先加载<MediaPlayer/MediaPlayer.h>框架,并#import导入。媒体播放需要注意的几个点在于:
——全屏的设置需要在视图可见后设置才有效。
——各种控制主要是通过通知NSnotificationCenter来实现的,有进入/退出全屏,播放暂停状态改变等等。
#import "WPMoviePlayController.h" #import <MediaPlayer/MediaPlayer.h> @interface WPMoviePlayController() @property(nonatomic,strong) MPMoviePlayerController *movie; @end @implementation WPMoviePlayController -(MPMoviePlayerController *)movie{ if (_movie==nil) { //直接获取文件路径为URL,成功 NSURL *url=[[NSBundle mainBundle]URLForResource:@"a.mp4" withExtension:nil]; _movie=[[MPMoviePlayerController alloc]initWithContentURL:url]; _movie.view.frame=self.view.bounds; [self.view addSubview:_movie.view]; } return _movie; } -(void)viewDidLoad{ [super viewDidLoad]; [self.movie play]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(enterFullScreen) name:MPMoviePlayerDidEnterFullscreenNotification object:nil]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(exitFullScreen) name:MPMoviePlayerDidExitFullscreenNotification object:nil]; } -(void)viewDidAppear:(BOOL)animated{ //Setting this property to YES before the movie player's view is visible will have no effect. //这个属性需要在电影播放器对象view呈现之后设置才有用,光load不行,需要等appear后设置才行,所以在此方法中使用 self.movie.fullscreen=YES; } -(void)enterFullScreen{ NSLog(@"进入全屏"); } -(void)exitFullScreen{ [self.movie stop]; [self dismissViewControllerAnimated:YES completion:nil]; NSLog(@"退出全屏"); }
——就是每个方法/函数相互调用之间的那些所有东西。
——大多数情况下,运行时就在幕后悄悄运行,它主要用于编写和编译OC源程序
——利用CLang把OC源程序(如main.m)编译成CPP的代码,这样可以看到底层运行时实现的原理,是了解OC底层原理的方法之一。
clang -rewrite-objc main.m
open main.cpp
面试:你用过Runtime开发吗?
回答:Runtime是方法调用之间的那些东西,是做底层的,我有时候用clang把源代码反编译成C++,没事看看底层实现原理。
【iOS开发-97】MediaPlayer框架中MPMoviePlayerController类视频播放的使用,运行时runtime
标签:
原文地址:http://blog.csdn.net/weisubao/article/details/42126083