【iOS开发-97】MediaPlayer框架中MPMoviePlayerController类视频播放的使用,运行时runtime
2014-12-24 17:22
661 查看
(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(@"退出全屏");
}
(2)什么是运行时?
——就是每个方法/函数相互调用之间的那些所有东西。
——大多数情况下,运行时就在幕后悄悄运行,它主要用于编写和编译OC源程序
——利用CLang把OC源程序(如main.m)编译成CPP的代码,这样可以看到底层运行时实现的原理,是了解OC底层原理的方法之一。
clang -rewrite-objc main.m
会生成一个main.cpp文件,然后
open main.cpp
可以查看。
面试:你用过Runtime开发吗?
回答:Runtime是方法调用之间的那些东西,是做底层的,我有时候用clang把源代码反编译成C++,没事看看底层实现原理。
——全屏的设置需要在视图可见后设置才有效。
——各种控制主要是通过通知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(@"退出全屏");
}
(2)什么是运行时?
——就是每个方法/函数相互调用之间的那些所有东西。
——大多数情况下,运行时就在幕后悄悄运行,它主要用于编写和编译OC源程序
——利用CLang把OC源程序(如main.m)编译成CPP的代码,这样可以看到底层运行时实现的原理,是了解OC底层原理的方法之一。
clang -rewrite-objc main.m
会生成一个main.cpp文件,然后
open main.cpp
可以查看。
面试:你用过Runtime开发吗?
回答:Runtime是方法调用之间的那些东西,是做底层的,我有时候用clang把源代码反编译成C++,没事看看底层实现原理。
相关文章推荐
- iOS开发遇到的坑之三--使用asi框架在xcode下正常运行,但是打包时却不能进行网络访问
- 【视频开发】Gstreamer框架中使用gst-launch进行流媒体播放
- 安卓开发:弹出自定义对话框自动播放视频(仿视频广告效果,使用mediaplayer和surfaceview做播放器)
- iOS开发之AVPlayer的精彩使用--->网易新闻视频播放界面的另类实现
- iOS开发之AVPlayer的精彩使用--->网易新闻视频播放界面的另类实现
- iOS开发笔记--开源播放框架ijkplayer(iOS版)使用教程
- iOS开发 MPMoviePlayerController和MPMoviePlayerViewController(视频播放)的使用
- iOS开发 AVPlayerViewController(视频播放)的使用
- ios 编程: ipad 和 iphone开发中使用 UIWebView 来播放视频的时候,在页面切换时 停止播放
- iOS开发之MediaPlayer框架的简易使用
- iOS开发-BUG:解决在使用MPMoviePlayerController播放视频后导航栏上移的问题
- android开发视频播放器-----视频播放 Vitamio框架的使用(一)
- iOS 视频录制、播放,使用视听媒体框架AVFoundation实现视频录制播放 —— HERO博客
- iOS开发视频教程—第四章Foudation框架介绍的源代码和课件下载
- IOS开发 使用TouchJSON框架 解析JSON
- 4.3 iOS开发视频教程—NSArray数组的使用
- 【iOS-Cocos2d游戏开发之十四】音频/音效/视频播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d进行视频播放!)
- COCOS2中用MPMoviePlayerController播放视频出现黑屏---iOS开发之最灵异事件之4
- 【iOS-Cocos2d游戏开发之十四】音频/音效/视频播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d进行视频播放!)
- 从头学Android之多媒体--使用MediaPlayer和SurfaceView播放视频