方法一:
- (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. 警告视图及操作表单在xcode7.0中的使用

    警告视图(alert)及操作表单(action sheet)都用于向用户提供反馈.(模态视图) 操作表单:要求用户在两个以上选项之间做出选择.操作表单从屏幕底部出现,显示一系列按钮供用户选择.用户必须 ...

  2. 小小的IP,大大的耦合,你痛过吗?

    什么是耦合? 耦合,是架构中,本来不相干的代码.模块.服务.系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态. 感官上,怎么发现系统中的耦合? 作为技术人,每每在 ...

  3. [ SCOI 2007 ] Perm

    \(\\\) \(Description\) 给出只包括多个\(0\text~ 9\)的数字集,求有多少个本质不同的全排列,使得组成的数字能够整除\(M\). \(|S|\in [1,10]\),\( ...

  4. Android基础TOP2:单机按钮改变字体颜色

    ---恢复内容开始--- Activity: <TextView android:id="@+id/t1" android:textSize="30dp" ...

  5. java与javascript之间json格式数据互转

    javascript中对象与字符串的互转 对象转为字符串:通过JSON.encode方法,这个是json.js里面的方法,引入到当前文件就可以了. 字符串转换为对象:①使用JSON.decode方法, ...

  6. pycuda installation error: command 'gcc' failed with exit status 1

    原文:python采坑之路 Setup script exited with error: command 'gcc' failed with exit status 1 伴随出现"cuda ...

  7. 【sqli-labs】 less56 GET -Challenge -Union -14 queries allowed -Variation3 (GET型 挑战 联合查询 只允许14次查询 变化3)

    单引号括号闭合 http://192.168.136.128/sqli-labs-master/Less-56/?id=1')%23 http://192.168.136.128/sqli-labs- ...

  8. VBA中Option的四种用法

    1.Option Explicit.当使用Option Explicit时,必须在模块中的所有过程声明每一个变量,否则会出现语法错误并不能被编译.这样做的好处是,它能消除程序中因为错拼变量名而导致程序 ...

  9. Navicat 导出为 Excel 文件

    1:先选择一个表 再点击导出向导 2:看图   3:选择保存的路径  4:选择字段    5:最后执行吧 

  10. webstorm_completion

    js 使用yarn 安装声明定义文件 @types/xxx koa ==> @types/koa koa-router ==> @types/koa-router 安装webstorm中的 ...