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并添加

在需要使用库的地方添加下面的代码:

[cpp] view plaincopy

  1. #import <MediaPlayer/MediaPlayer.h>

本项目名为MediaPlayerTest,源码如下:

VideoPlayerViewController.h 头文件代码:

[cpp] view plaincopy

  1. #import <UIKit/UIKit.h>

  2. #import <MediaPlayer/MediaPlayer.h>
  3. @interface ViewController : UIViewController

  4. {

  5. UIButton *playBtn;

  6. MPMoviePlayerController *moviePlayer;

  7. }
  8. @property (retain, nonatomic) IBOutlet UIButton *playBtn;

  9. @property (retain, nonatomic) MPMoviePlayerController *moviePlayer;
  10. - (IBAction)playVideo:(id)sender;

  11. @end

VideoPlayerViewController.m 实现文件代码:

[cpp] view plaincopy

  1. #import "ViewController.h"

  2. #import <MediaPlayer/MediaPlayer.h>
  3. @interface ViewController ()
  4. @end
  5. @implementation ViewController

  6. @synthesize playBtn;

  7. @synthesize moviePlayer;
  8. - (void)viewDidLoad

  9. {

  10. [super viewDidLoad];

  11. self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:

  12. [NSURL URLWithString:@"http://v.youku.com/player/getRealM3U8/vid/XNTY2MTAxOTUy/type/video.m3u8"]];

  13. self.moviePlayer.movieControlMode = MPMovieControlModeDefault;

  14. [self.moviePlayer.view setFrame:CGRectMake(0, 0, 320, 380)];
  15. // Do any additional setup after loading the view, typically from a nib.

  16. }
  17. - (void)didReceiveMemoryWarning

  18. {

  19. [super didReceiveMemoryWarning];

  20. // Dispose of any resources that can be recreated.

  21. }
  22. - (IBAction)playVideo:(id)sender

  23. {

  24. NSLog(@"Into playvideo.");

  25. [self.view insertSubview:[self.moviePlayer view] atIndex:10];

  26. [self.moviePlayer play];

  27. }
  28. @end

MainStoryboard.storyboard:

将ViewController的playBtn和IB的Button关联起来

将Button的Touch Up Inside事件和View Controller的playVideo操作关联起来

运行结果:

参考:

IOS 6编程-使用MPMoviePlayerController类实现视频播放器

iOS开发之多媒体播放

简单iPhone视频播放器

时间: 2024-10-21 18:50:23

IOS上MediaPlayer framework实现视频播放的相关文章

iOS疯狂详解之视频播放MPMoviePlayerViewController

需要导入的框架 #import <MediaPlayer/MediaPlayer.h> MediaPlayer.framework MPMoviePlayerViewController: 打开网络视频: -(void)openmovie { MPMoviePlayerViewController *movie = [[MPMoviePlayerViewControlleralloc]initWithContentURL:[NSURLURLWithString:@"视频网络地址&qu

关于iOS上的静态库

最近再进行项目的真机调试,然后发现了一个天坑.就此研究了一些iOS上的静态库的使用: 首先我们是直接拿一个可以运行的项目来制作静态库的,网上大部分都是先创建静态库然后再写内容,看看我的方法. 1.把子项目导入到总项目工程里面,然后删除子项目的运行文件,然后再里面创建一个静态库!!!(不要创建framework那个,非常坑.我给坑了好久具体下面在说吧)创建一个.a的静态库.名字没有什么影响自己喜欢就可以,我一般是按照原来的名字来的. 2.然后在总项目工程里面添加链接  Build Phases -

在iOS上实现二维码功能

http://blog.csdn.net/abcmx/article/details/8011904 如今二维码随处可见,无论是实物商品还是各种礼券都少不了二维码的身影.而手机等移动设备又成为二维码的一个很好的应用平台,不管是生成二维码还是扫码二维码. 下面介绍一下如何在苹果iOS设备上使用二维码: 1. 扫描二维码(解码)扫描二维码的开源库有很多如 ZBar.ZXing等.在此以ZBar作为例子构建二维码扫码应用.首先在github上下载ZBar SDK地址https://github.com

Unity3D研究院之IOS全自动编辑framework、plist、oc代码

Unity打IOS时会先生成一个Xcode工程,如果你需要增加一些第三方的framework那么需要手动一条一条的添加,这太烦了..而且可能你还需要修改Plist文件,甚至还可能要修改unity自动生成的oc代码,每次打包都要修改的话,那太累了..这篇文章就是全自动打包的第一步..建议使用XUPorter,我在它的基础上拓展了两个类,一个用来修改plist,一个用来修改unity生成出来的OC代码.文章的最后我会给出代码.. 那么我用一个比较变态的SDK举个例子ShareSDK,它就需要自动添加

微信双开是定时炸弹?关于非越狱iOS上微信分身高危插件ImgNaix的分析

作者:蒸米@阿里移动安全 序言 微信作为手机上的第一大应用,有着上亿的用户.并且很多人都不只拥有一个微信帐号,有的微信账号是用于商业的,有的是用于私人的.可惜的是官方版的微信并不支持多开的功能,并且频繁更换微信账号也是一件非常麻烦的事,于是大家纷纷在寻找能够在手机上登陆多个微信账号的方法,相对于iOS,Android上早就有了很成熟的产品,比如360 OS的微信双开和LBE的双开大师就可以满足很多用户多开的需求. 但是在iOS上,因为苹果的安全机制,并没有任何知名的IT厂商推出微信多开的产品,反

MediaPlayer+surfaceView实现视频播放器

最近项目中要用到视频播放器,就先写了个Demo,在写的过程中遇到些问题,来和大家分享一下: 1.Demo是基于Android电视的,因此与Android手机有点区别,但问题不大 2.MediaPlayer有个Bug,当视频播放完后getDuration(获取视频总时间)和getCurrentPosition(获取视频当前播放时间)方法获取到的数字不一样,相差300ms左右,如果单纯的播放不受影响,但是如果需要显示播放进度或播放时间就会有点小麻烦,暂时还没找到好的方法,只能在视频播放结束时处理时间

前端开发在IOS上元素active状态无法触发问题

###需求: 按钮在点击时变色,给用户反馈: 手指离开屏幕后按钮颜色变回之前的颜色: ###问题: 使用css  active状态来实现上述需求:发现在浏览器和Android手机上效果都ok.但是IOS上死活不行.后来偶然发现一篇博文:http://blog.csdn.net/freshlover/article/details/43735273 解释了这个问题(感谢google).意思就是,如果你的body元素没有绑定'touchstart'事件,safari就不会使用active状态. ##

深度学习之在iOS上运行CNN

1 引言 作为曾经的iOS开发者,在研究深度学习的时候,总有一个想法就是在iPhone上运行深度学习,不管是在手机上训练还是利用训练好的数据进行测试. 因为iOS的开发环境支持C++,因此,只要你的代码是C/C++,本质上就可以在iOS上运行. 怎么才能更快更好地在iOS上运行CNN呢? 2 方法1:通过Matlab转码 Matlab自带转成c的工具,如果你研究过UFLDL的深度学习教程,就知道如何在Matlab上使用CNN,那么,转换成c后,放到iOS的开发环境中,然后将参数存成txt格式再读

[ 面试没回答上的问题2]IOS上给body绑定click事件的bug

面试被问到ios上的bug,自己提到绑定click事件的bug,但是并没有把问题讲的很清楚,这里再清理一下思路. 这个bug只在IOS上有,包括ihone,ipad,由于ios浏览器都用的safari内核,所以ios浏览器全部中枪. bug描述 在进行事件委托时,如果将未存在于DOM的元素事件直接委托到body上的话,会导致事件委托失效,调试结果为事件响应到body子元素为止,既没有冒泡到body上,也没有被body所捕获.但如果事件是DOM元素本身具有的,则不会触发bug.换而言之,只有元素的