IOS提供了叫做MPMoviePlayerController  MPMoviePlayerViewController两个类。能够轻松用来实现视频播放。

MPMoviePlayerViewController仅仅能全屏播放视频。

#import "MainViewController.h"
#import <MediaPlayer/MediaPlayer.h> @interface MainViewController ()
//视频播放器
@property (strong, nonatomic) MPMoviePlayerController *player;
@property (strong, nonatomic) UIImageView *imageView;
@end @implementation MainViewController - (void)viewDidLoad
{
[super viewDidLoad];
//实例化视频播放器
NSURL *url = [[NSBundle mainBundle]URLForResource:@"promo_full" withExtension:@"mp4"]; //视频播放是流媒体的播放模式。所谓流媒体就是把视频数据像流水一样。变载入,变播放。
// //提示:假设url中包括中文。须要加入百分号。 // NSString *urlString = @"http:www.xxx.com/video/xxx.mp4";
// NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; self.player = [[MPMoviePlayerController alloc]initWithContentURL:url];
//1设置播放器的大小
[self.player.view setFrame:CGRectMake(0, 0, 320, 180)]; //16:9是主流媒体的样式
//2将播放器视图加入到根视图
[self.view addSubview:self.player.view]; //4播放
[self.player play];
//[self.player stop];
//通过通知中心。以观察者模式监听视频播放状态
//1 监听播放状态
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(stateChange) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];
//2 监听播放完毕
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(finishedPlay) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
//3视频截图
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(caputerImage:) name:MPMoviePlayerThumbnailImageRequestDidFinishNotification object:nil];
//3视频截图
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(caputerImage:) name:MPMoviePlayerThumbnailImageRequestDidFinishNotification object:nil]; //4退出全屏通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(exitFullScreen) name:MPMoviePlayerDidExitFullscreenNotification object:nil]; //异步视频截图,能够在attimes指定一个或者多个时间。
[self.player requestThumbnailImagesAtTimes:@[@10.0f, @20.0f] timeOption:MPMovieTimeOptionNearestKeyFrame]; UIImageView *thumbnailImageView = [[UIImageView alloc]initWithFrame:CGRectMake(80, 200, 160, 90)];
self.imageView = thumbnailImageView;
[self.view addSubview:thumbnailImageView];
} #pragma mark 退出全屏
- (void)exitFullScreen
{
NSLog(@"退出全屏");
} #pragma mark -播放器事件监听
#pragma mark 视频截图 这种方法是异步方法
- (void)caputerImage:(NSNotification *)notification
{
NSLog(@"截图 %@", notification);
UIImage *image = notification.userInfo[@"MPMoviePlayerThumbnailImageKey"];
[self.imageView setImage:image];
} #pragma mark 播放器事件监听
#pragma mark 播放完毕
- (void)finishedPlay
{
NSLog(@"播放完毕");
} #pragma mark 播放器视频的监听
#pragma mark 播放状态变化
/*
MPMoviePlaybackStateStopped, //停止
MPMoviePlaybackStatePlaying, //播放
MPMoviePlaybackStatePaused, //暂停
MPMoviePlaybackStateInterrupted, //中断
MPMoviePlaybackStateSeekingForward, //快进
MPMoviePlaybackStateSeekingBackward //快退
*/
- (void)stateChange
{
switch (self.player.playbackState) {
case MPMoviePlaybackStatePaused:
NSLog(@"暂停");
break;
case MPMoviePlaybackStatePlaying:
//设置全屏播放
[self.player setFullscreen:YES animated:YES];
NSLog(@"播放");
break;
case MPMoviePlaybackStateStopped:
//注意:正常播放完毕。是不会触发MPMoviePlaybackStateStopped事件的。
//调用[self.player stop];方法能够触发此事件。
NSLog(@"停止");
break;
default:
break;
}
} @end

ios网络学习------9 播放网络视频的更多相关文章

  1. FC网络学习笔记02 -网络配置方法

    随着新一代飞机的综合化航电系统对通信需求的不断提高,传统的ARINC429.1553B总线的传输速率分别只有100Kbps和1Mbps,其带宽已远远不 论文联盟 http://Www.LWlm.cOm ...

  2. OpenCV学习:播放avi视频文件

    #if 0 //播放avi视频文件(IplImage) #include <opencv2/opencv.hpp> using namespace std; #pragma comment ...

  3. Snail—iOS网络学习之得到网络上的数据

    在开发项目project中,尤其是手机APP,一般都是先把界面给搭建出来.然后再从网上down数据 来填充 那么网上的数据是怎么得来的呢,网络上的数据无非就经常使用的两种JSON和XML 如今 大部分 ...

  4. [svc]容器网络学习索引及网络监控

    整理的可能有些误失,抽时间在细细的分类完善下. 发现这篇对于网络从低到高层协议整理的还不错 每层都有一些有意思的话题 一些协议有一些设计上的弱点, 所以产生了种种的网络层安全问题 一般我们学一些 1, ...

  5. ios网络学习------6 json格式数据的请求处理

    ios网络学习------6 json格式数据的请求处理 分类: IOS2014-06-30 20:33 471人阅读 评论(3) 收藏 举报 #import "MainViewContro ...

  6. Android VideoView无法播放网络视频

    今天学习Android播放视频和音频,其中在练习播放视频的时候无法播放网络视频,网络视频是别人发布在网上的,但是把视频放在本地是可以的,最后推测是没有开放网络的访问权限的问题,果然开放了之后就能正常访 ...

  7. iOS音频篇:使用AVPlayer播放网络音乐

    http://www.cocoachina.com/ios/20160324/15767.html 引言 假如你现在打算做一个类似百度音乐.豆瓣电台的在线音乐类APP,你会怎样做? 首先了解一下音频播 ...

  8. Android Multimedia框架总结(二)MediaPlayer框架及播放网络视频案例

    前言:前面一篇我们介绍MediaPlayer相关方法,有人说,没有实际例子,看得不是很明白,今天在分析MediaPlayer时,顺带一个播放网络视频例子.可以自行试试.今天分析的都是下几篇介绍各个模块 ...

  9. ios网络学习------4 UIWebView的加载本地数据的三种方式

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

随机推荐

  1. GO -- 正则表达式

    str := "880218end" match, _ := regexp.MatchString("\\d{16}", str) //六位连续的数字 fmt. ...

  2. 实习医生格蕾第十三季/全集Grey’s Anatomy迅雷下载

    英文全名Grey's Anatomy,第13季(2016)ABC.本季看点:<实习医生格蕾>(Grey’s Anatomy)上季终集里,又一名资深演员离开了——Sara Ramirez扮演 ...

  3. 加州靡情第一至七季/全集Californication迅雷下载

    加州靡情 第一至七季 Californication Season 1-7 (2007-2014)本季看点:2007-2014,7季,84集.电视圈一直有个怪现象,有许多演员在非常成功剧集完结之后,反 ...

  4. 权力的游戏第七季/全集Game of Thrones迅雷下载

    艾美及金球奖获奖HBO原创剧集<权力的游戏>第七季将于2016年夏天晚些时候开拍.新的一季共有七集,主要拍摄地为北爱尔兰,部分镜头也将在西班牙和冰岛取景.上映时间预计将略有推迟,至2017 ...

  5. 【 D3.js 入门系列 --- 2 】 怎样使用数据和选择元素

    本人的个人博客首页为: http://www.ourd3js.com/  ,csdn博客首页为:http://blog.csdn.net/lzhlzz/. 转载请注明出处,谢谢. 接着上一讲的内容,这 ...

  6. 《RESTful Web APIs中文版》

    <RESTful Web APIs中文版> 基本信息 原书名:RESTful Web APIs 原出版社: O'Reilly Media 作者: Leonard Richardson    ...

  7. 《深入理解Android内核设计思想》

    <深入理解Android内核设计思想> 基本信息 作者: 林学森 出版社:人民邮电出版社 ISBN:9787115348418 上架时间:2014-4-25 出版日期:2014 年5月 开 ...

  8. LINQ to XML 建立,读取,增,删,改

      LINQ to XML的出现使得我们再也不需要使用XMLDocument这样复杂的一个个的没有层次感的添加和删除.LINQ可以使的生成的XML文档在内存中错落有致.下面以一个小的例子说名LINQ ...

  9. composer - No business network has been specified for this connection 解决方案

    I have installed hyperledger composer locally. But on localhost it gives error : Error : Error tryin ...

  10. BERT深度解析

    这篇文章看起来很不错: https://blog.csdn.net/qq_39521554/article/details/83062188 仔细看看. 也可以看这个github,一样的文章: htt ...