方法一:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
//利用自带MPMoviePlayerController来实现视频播放,首先要在 项目中导入MediaPlayer.Framework框架包.
//在试图控制器中导入#import "MediaPlayer/MPMoviePlayerController.h"
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
imageView.image = [UIImage imageNamed:@"00013"];
[self.view addSubview:imageView];
[imageView release]; // 播放视频按钮
UIButton *playButton = [UIButton buttonWithType:UIButtonTypeSystem];
playButton.frame = CGRectMake(200, 30, 100, 30);
[playButton addTarget:self action:@selector(playClick:) forControlEvents:UIControlEventTouchUpInside];
[playButton setTitle:@"播放视频" forState:UIControlStateNormal]; playButton.backgroundColor = [UIColor greenColor];
playButton.layer.cornerRadius = 5;
playButton.layer.masksToBounds = YES;
[self.view addSubview:playButton];
} - (void)playClick:(UIButton *)btn
{
//视频文件路径,此视频已经存入项目包中.属于本地播放
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
//视频URL
NSURL *url = [NSURL fileURLWithPath:path];
//视频播放对象
MPMoviePlayerController *movie = [[MPMoviePlayerController alloc] initWithContentURL:url];
movie.controlStyle = MPMovieControlStyleFullscreen;
[movie.view setFrame:self.view.bounds];
movie.initialPlaybackTime = -1;
[self.view addSubview:movie.view];
//注冊一个播放结束的通知, 当播放结束时, 监听到而且做一些处理
//播放器自带有播放通知的功能, 在此只只须要注冊观察者监听通知的就可以
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification
object:movie];
[movie play];
} - (void)myMovieFinishedCallback:(NSNotification *)notify
{
//视频播放对象
MPMoviePlayerController *theMovie = [notify object];
//销毁播放通知
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:(theMovie)];
//释放视频对象
[theMovie.view release];
} 方法二:
- (void)viewDidLoad
{
//首先要在 项目中导入MediaPlayer.Framework框架包.
//在试图控制器中导入#import <MediaPlayer/MediaPlayer.h>
[super viewDidLoad];
// Do any additional setup after loading the view.
NSURL *videoURL;
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
//推断是网络地址还是本地播放地址
if ([path hasPrefix:@"http://"]) {
videoURL = [NSURL URLWithString:path];
}else{
videoURL = [NSURL fileURLWithPath:path];
}
MPMoviePlayerViewController *_moviePlayerController= [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];
[_moviePlayerController.view setFrame:CGRectMake(0,100,320,200)];
_moviePlayerController.moviePlayer.movieSourceType=MPMovieSourceTypeFile;
[_moviePlayerController.moviePlayer setScalingMode:MPMovieScalingModeNone];
[_moviePlayerController.moviePlayer setRepeatMode:MPMovieRepeatModeNone];
[_moviePlayerController.moviePlayer setControlStyle:MPMovieControlModeVolumeOnly];
[_moviePlayerController.moviePlayer setFullscreen:NO animated:YES];
[_moviePlayerController.moviePlayer play];
//视频播放组件的容器,加这个容器是为了兼容iOS6,假设不加容器在iOS7以下没有不论什么问题,假设在iOS6以下视频的播放画面会自己主动铺满self.view;
UIView *moviePlayView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 568)];
[self.view addSubview:moviePlayView];
[moviePlayView addSubview:[_moviePlayerController.moviePlayer view]];
}

ios 视频播放代码Demo的更多相关文章

  1. [iOS]一行代码集成空白页面占位图(基于runtime+MJRefresh思想)

    2018年01月03日阅读 2472   [iOS]一行代码集成空白页面占位图(基于runtime+MJRefresh思想) LYEmptyView 此框架是本人在5,6个月前,公司启动新项目的时候, ...

  2. 最全的iOS物理引擎demo

    概述 最全的iOS物理引擎demo,实现重力.碰撞.推力.摆动.碰撞+重力.重力弹跳.仿摩拜单车贴纸效果.防iMessage滚动效果.防百度外卖首页重力感应等效果! 详细 代码下载:http://ww ...

  3. iOS视频播放(AVFoundation)

    iOS视频播放(AVFoundation) 关于iOS平台的音视频处理,苹果官方提供了OC和swift接口的AVFoundation框架,可以进行各种音频播放和剪辑,底层实现使用了GPU加速,编解码效 ...

  4. iOS: ios视频播放(MPMediaPlayerController,AVPlayer,AVPlayerViewcontroller、ffmpeg-AVPlayer)

    介绍: 和音频播放一样,ios也提供个很多的API.如mediaPlayer.framework下的MPMediaPlayerController.AVFounditon.framework下的AVP ...

  5. Cordova - 与iOS原生代码交互2(使用Swift开发Cordova的自定义插件)

    在前一篇文章中我介绍了如何通过 js 与原生代码进行交互(Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)),当时是直接对Cordova生成的iOS工程项目进行编辑操作的(添加 ...

  6. Web程序员开发App系列 - 调试Android和IOS手机代码(补图)

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  7. ios统计代码行数

    要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 列出每个文件的行数: find . -name "*.m" -or -name "*.h" ...

  8. 嵌入式 hi3518x平台h264+g711a封装mp4代码demo

    先看代码吧,有代码有真相,具体代码的demo(下载demo的朋友请勿在网上上传我的demo,谢谢)下载连接为: http://download.csdn.net/detail/skdkjxy/8071 ...

  9. iOS: 在代码中使用Autolayout (2) – intrinsicContentSize和Content Hugging Priority【转】

    原文:http://www.mgenware.com/blog/?p=491 接上文:iOS: 在代码中使用Autolayout (1) – 按比例缩放和优先级. 我们继续来看在代码中使用Autola ...

随机推荐

  1. 原生js实现简单的焦点图效果

    用到一些封装好的运动函数,主要是定时器 效果为图片和图片的描述定时自动更换 <!DOCTYPE html> <html> <head> <meta chars ...

  2. html5——web存储

    基本概念 1.传统方式我们以document.cookie来进行存储的,但是由于其存储大小只有4k左右,并且解析也相当的复杂,给开发带来诸多不便 2.h5存储设置.读取方便,而且容量较大,sessio ...

  3. html——a标签中target属性

    有 4 个保留的目标名称用作特殊的文档重定向操作: _blank 浏览器总在一个新打开.未命名的窗口中载入目标文档. _self 这个目标的值对所有没有指定目标的 <a> 标签是默认目标, ...

  4. dubbo之路由规则

    向注册中心写入路由规则:(通常由监控中心或治理中心的页面完成) RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader ...

  5. k[原创]Faster R-CNN论文翻译

    物体检测论文翻译系列: 建议从前往后看,这些论文之间具有明显的延续性和递进性. R-CNN SPP-net Fast R-CNN Faster R-CNN Faster R-CNN论文翻译   原文地 ...

  6. 扩增子图表解读1箱线图:Alpha多样性

    箱线图 箱形图(Box-plot)又称为盒须图.盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图.因形状如箱子而得名.在宏基因组领域,常用于展示样品组中各样品Alpha多样性的分布 第一种情 ...

  7. picturebox中添加图片

    private void Form1_Load(object sender, EventArgs e) { radioButton2.Checked = true; } private void ra ...

  8. css3 animation 中的 steps

    steps Specifies a stepping function, described above, taking two parameters. The first parameter spe ...

  9. servlet之@PostConstruct,@PreDestroy

    1.@PostConstruct说明 被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法.被@PostCo ...

  10. Django - 基于orm实现用户增删改查

    1.基于orm实现用户新增 user_info.html中,增加代码: views.py中,在原user_info函数中,增加判断代码: 备注:最后一句,可以通过return redirect 实现, ...