IOS上MediaPlayer framework实现视频播放
播放电影文件:
iOS sdk中可以使用MPMoviePlayerController来播放电影文件。但是在iOS设备上播放电影文件有严格的格式要求,只能播放下面两个格式的电影文件。
• H.264 (Baseline Profile Level 3.0)
• MPEG-4 Part 2 video (Simple Profile)
MPMoviePlayerController可以播放本地视频文件,也可以播放互联网上的视频文件。
首先在项目中需要引入Media Player 框架
项目-->Targets-->Build Phases-->Link Binary With Libraries
点击左下角的+号

找到MediaPlayer.framework并添加

在需要使用库的地方添加下面的代码:
- #import <MediaPlayer/MediaPlayer.h>
本项目名为MediaPlayerTest,源码如下:
VideoPlayerViewController.h 头文件代码:
- #import <UIKit/UIKit.h>
- #import <MediaPlayer/MediaPlayer.h>
- @interface ViewController : UIViewController
- {
- UIButton *playBtn;
- MPMoviePlayerController *moviePlayer;
- }
- @property (retain, nonatomic) IBOutlet UIButton *playBtn;
- @property (retain, nonatomic) MPMoviePlayerController *moviePlayer;
- - (IBAction)playVideo:(id)sender;
- @end
VideoPlayerViewController.m 实现文件代码:
- #import "ViewController.h"
- #import <MediaPlayer/MediaPlayer.h>
- @interface ViewController ()
- @end
- @implementation ViewController
- @synthesize playBtn;
- @synthesize moviePlayer;
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:
- [NSURL URLWithString:@"http://v.youku.com/player/getRealM3U8/vid/XNTY2MTAxOTUy/type/video.m3u8"]];
- self.moviePlayer.movieControlMode = MPMovieControlModeDefault;
- [self.moviePlayer.view setFrame:CGRectMake(0, 0, 320, 380)];
- // Do any additional setup after loading the view, typically from a nib.
- }
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- - (IBAction)playVideo:(id)sender
- {
- NSLog(@"Into playvideo.");
- [self.view insertSubview:[self.moviePlayer view] atIndex:10];
- [self.moviePlayer play];
- }
- @end
MainStoryboard.storyboard:
将ViewController的playBtn和IB的Button关联起来
将Button的Touch Up Inside事件和View Controller的playVideo操作关联起来
运行结果:
参考:
IOS 6编程-使用MPMoviePlayerController类实现视频播放器
IOS上MediaPlayer framework实现视频播放的更多相关文章
- iOS中 MediaPlayer framework实现视频播放 韩俊强的博客
iOS开发中播放音乐可以使用MPMusicPlayerController类来实现,播放视频可以使用MPMoviePlayerController和MPMoviePlayerViewControlle ...
- iOS使用Security.framework进行RSA 加密解密签名和验证签名
iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...
- 细数iOS上的那些安全防护
细数iOS上的那些安全防护 龙磊,黑雪,蒸米 @阿里巴巴移动安全 0x00 序 随着苹果对iOS系统多年的研发,iOS上的安全防护机制也是越来越多,越来越复杂.这对于刚接触iOS安全的研究人员来说非 ...
- 微信双开是定时炸弹?关于非越狱iOS上微信分身高危插件ImgNaix的分析
作者:蒸米@阿里移动安全 序言 微信作为手机上的第一大应用,有着上亿的用户.并且很多人都不只拥有一个微信帐号,有的微信账号是用于商业的,有的是用于私人的.可惜的是官方版的微信并不支持多开的功能,并且频 ...
- 关于iOS上的静态库
最近再进行项目的真机调试,然后发现了一个天坑.就此研究了一些iOS上的静态库的使用: 首先我们是直接拿一个可以运行的项目来制作静态库的,网上大部分都是先创建静态库然后再写内容,看看我的方法. 1.把子 ...
- 在iOS上实现二维码功能
http://blog.csdn.net/abcmx/article/details/8011904 如今二维码随处可见,无论是实物商品还是各种礼券都少不了二维码的身影.而手机等移动设备又成为二维码的 ...
- ios上position:fixed失效问题
手机端上的猫腻真是多啊~~~ 此起彼伏! 最近又遇到了 固定定位的底部导航在ios上被弹出去 此时内心1w+个草泥马奔过~~~~~~~~ 直接上解决方案: <div class="ma ...
- :active 为什么在ios上失效
:active是针对鼠标,而手机上是没有鼠标,而是touchstart,所以早成了ios上不兼容 解决方法是: window.onload = function(){ document.body.ad ...
- 解决protobuf不能直接在IOS上使用,利用protobuf-net在IOS上通讯
---------------------------------------------------------------------------------------------------- ...
随机推荐
- clojure一些笔记
https://xumingming.sinaapp.com/302/clojure-functional-programming-for-the-jvm-clojure-tutorial/#intr ...
- HDU 4070 + 赤裸裸的贪心~~
J - Phage War Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Phage ...
- MAC OS brew安装MNMP
安装HomeBrew Brew是Mac下面的包管理工具,就像centos下面的yum一样.HomeBrew可以通过ruby来安装,mac系统是自带ruby的,所以只要在终端运行下面的代码即可安装Hom ...
- SQLALchemy之介绍,基本使用
一.介绍 SQLALchemy也是一个python的ORM框架,django内部的ORM框架只适用于django,而SQLALchemy适用于所有python的web框架 SQLAlchemy是一个基 ...
- 洛谷P4397 [JLOI2014]聪明的燕姿
传送门 dfs的时候莫名其妙深度太大过不了……然后死活找不出哪里错…… 首先,约数和这东西是个积性函数,或者直接点的话就是如果$$n=p_1^{a_1}p_2^{a_2}p_3^{a_3}…p_m^{ ...
- redis在linux的安装和开机启动(二)
编译 安装 makefile已经存在 执行make 即可 make之后, 自动创建可运行的脚本文件, 不需要再执行 install了. 将脚本文件, 拷贝到指定位置, 就可以了. 手动创建目录, 需要 ...
- ACM_Fibonacci数(同余)
Fibonacci数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 斐波那契数列定义如下:f(0)=0,f(1)=1,f(n+2 ...
- 利用 nodeJS 搭建一个简单的Web服务器(转)
下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...
- msxml3.dll 错误 '800c0005' 系统错误: -2146697211。
asp网站 因为这个问题,困扰自己好多次,还重装过两次服务器系统,非常的麻烦,这次终于找到了问题所在,记录下来,方便以后查看. 服务器症状: 1.服务器上的IE浏览器不能访问外网: 2.set htt ...
- MVC学习-用EF做增删改查
在做增删改查先,先介绍几个知识点: 1.代理类 在将对象方法EF数据上下文时,EF会为该对象封装 一个代理类对象, 同时为该对象的每一个属性添加一个标志:unchanged, 当对该对象某个属性进行操 ...