一. MediaPlayer

1. 导入系统库

// 提供了媒体文件的播放和查找

#import <MediaPlayer/MediaPlayer.h>

/** 提供视频播放的内容, 而不是一个UIView的子类, 9.0后废弃

用作一个嵌入到其它视图当中的视频播放界面

*/

@property (strong, nonatomic) MPMoviePlayerController *mpc;

/** 视频播放控制器, 9.0后废弃

作为独立的播放器来使用, 已经提供了相关的选项, 可以直接使用视图控制器

*/

@property (strong, nonatomic) MPMoviePlayerViewController *mpvc;

2. MPMoviePlayerController 使用方法↓

NSURL *url = [[NSBundle mainBundle] URLForResource:@"***.mp4" withExtension:nil];

// ========== 加载视频的内容 ==========

_mpc = [[MPMoviePlayerController alloc]  initWithContentURL:url];

// 控制样式

/**

MPMovieControlStyleNone,      没有控制

MPMovieControlStyleEmbedded,   默认就是嵌入形式

MPMovieControlStyleFullscreen, 全屏样式

*/

_mpc.controlStyle = MPMovieControlStyleNone;

// 内容的填充模式

/**

MPMovieScalingModeNone,       不拉伸

MPMovieScalingModeAspectFit,  保持比例适应 (留空白)

MPMovieScalingModeAspectFill, 保持比例填充 (有部分内容超出屏幕)

MPMovieScalingModeFill     不保持比较填充, 会被拉伸

*/

_mpc.scalingMode = MPMovieScalingModeFill;

// 该视图中包含了`要播放视频的内容`和`相关的控制的控件(如播放等)`

// 将视频的内容和控制按钮添加到tempView上

[self.tempView addSubview:_mpc.view];

// 注意: 要给它配置fream值, 否则是看不到内容的

[_mpc.view setFrame:self.tempView.bounds];

------------------------------分割线---------------------------

// 它的播放相关的操作的方法定义在协议当中 <MPMediaPlayback>

// currentPlaybackRate表示当前的播放速率

// 如果1.0, 正常播放, 0.0表示暂停

if (_mpc.currentPlaybackRate == 0.0) {

_mpc.currentPlaybackRate = 1.5;

[_mpc play];

} else {

[_mpc pause];

}

2. MPMoviePlayerViewController 使用方法↓

NSURL *url = [[NSBundle mainBundle] URLForResource:@"***.mp4" withExtension:nil];

// 本地视频的URL链接

MPMoviePlayerViewController *mpvc = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

[self presentViewController:mpvc animated:YES completion:nil];

二. AVPlayer

1. 导入系统库

// 支持媒体播放, 控制, 字幕等

#import <AVFoundation/AVFoundation.h>

#import <AVKit/AVKit.h>

/** 媒体播放控制器 */

@property (strong, nonatomic) AVPlayerViewController *pvc;

/** 能将`视频内容展示`出来的图层 */

@property (strong, nonatomic) AVPlayerLayer *layer;

/** 媒体播放器 */

@property (strong, nonatomic) AVPlayer *player;

2. AVPlayerViewController 使用方法↓

// ========== 弹出独立的视频播放窗口 ==========

// 用于`装载AVPlayer`这个播放器的独立的`视图控制器`, 它的播放本质是依赖于AVPlayer这个类

AVPlayerViewController *pvc = [[AVPlayerViewController alloc] init];

// 关键类: 能够控制或管理`媒体资源`的播放, 暂停, 播放速率, 快进等

// AVPlayer 是整个AVKit或AVFoundation当中, 用于媒体播放的关键

// 为pvc配置一个可以播放视频的AVPlayer对象

pvc.player = [AVPlayer playerWithURL:url];

// 视频的相关控制操作, 都是由AVPlayer来负责

[pvc.player play];

[self presentViewController:pvc animated:YES completion:nil];

3. AVPlayerLayer 使用方法↓

// `AVPlayerLayer`会将`AVPlayer`的内容显示到它的图层上

AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:_player];

// 注意: 没有设置frame值

[layer setFrame:self.tempView.bounds];

[self.tempView.layer addSublayer:layer];

4. AVPlayer 使用方法↓

// AVPLayer是进行媒体文件播放的关键类

AVPlayer *player = [AVPlayer playerWithURL:url];

// 视频的相关控制操作, 都是由AVPlayer来负责

// `AVPlayerLayer`会将`AVPlayer`的内容显示到它的图层上

AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:player];

// 注意: 没有设置frame值

[layer setFrame:self.tempView.bounds];

[self.tempView.layer addSublayer:layer];

---------------分割线----------------

// 当前的播放速率, 0.0表示暂停, 1.0正常播放

if (_player.rate == 0.0) {

// 播放

[_player play];

// 要先播放, 才能改变播放速率

_player.rate = 2.0;

} else {

// 暂停

[_player pause];

}

iOS 系统视频播放器简单介绍相关推荐

  1. 思科IOS软件命名规则简单介绍:

    思科IOS软件命名规则简单介绍: AAAAA-BBBB-CC-DDDD.EE 1.  AAAAA    这组字符是说明文件所适用的硬件平台, 2.  BBBB       这组字符是说明这个IOS中所 ...

  2. iOS开发UI篇—简单介绍静态单元格的使用

    iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  3. iOS AVPlayer视频播放器

    代码地址如下: http://www.demodashi.com/demo/11168.html 一.运行效果 二.实现过程 ①.创建播放器avPlayer //创建播放器url = [url str ...

  4. iOS音视频播放-AVPlayer简单使用

    按公司需求需要对音频文件进行后台播放,借此机会对音频播放做了个总结.主要针对 AVPlayer 进行详细说明. iOS 各播放器比较 名称 使用环境 优点 确点 System Sound Servic ...

  5. react native实现兼容Android与ios的视频播放器

    呦吼-,我来啦,这是我的第一篇文章,当然是福利啦,项目代码可以直接运行使用的呀,这种便宜尽情挥霍去吧-.好了装嫩结束,来点实际的,这个项目其实是我主讲的一门视频课程(看文章就可以学到所有知识,若需要可 ...

  6. iOS 各视频播放器评价~总结

    //联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 一.[免费]专场 VLC 评:超好用,觉得可以媲美收费App!原本手机留着的AcePlayer和QQ影音都删掉了.独有的汉堡菜单挺有 ...

  7. android ios 传视频播放器,推荐用于iOS / Android全面格式的视频播放器|手机最强大的播放器...

    几天前,一个朋友以ts格式下载了一些高清电视剧,但是无法在iPad上播放,因此我想在计算机上将其转换为MP4格式. 花了时间和精力,结果并不令人满意. 事实上手机上的万能播放器,所有平台现在都具有支持 ...

  8. 简述linux系统引导流程,简单介绍如何用WinGrub 引导Linux系统简述

    以下主要介绍我的第一次安装Linux系统遭遇,以及怎么度过这个遭遇的,希望对大家有所帮助.不喜欢的可以略过. 一.开篇叙述我第一次安装Linux系统和接下来的经历 开篇:按照北南兄弟的<FC4菜 ...

  9. android 播放器 素材,【图片】【Android SurfaceView】视频播放器 简单例子_二次元的程序员吧_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.TestVedioActivity.Java package com.open_open.android_ch14_2; import android ...

  10. 【开源】知乎视频播放器 Griffith 介绍

    Griffith 是什么? Griffith 是一个基于 React 的视频播放器,目前已在知乎 web 和 mobile web 内使用,并在 GitHub 上开源. 开源地址及示例 GitHub ...

最新文章

  1. UISwipeGestureRecognizer 左右事件捕捉
  2. java treeset 红黑树_【数据结构】红黑树与跳表-(SortSet)-(TreeMap)-(TreeSet)
  3. 【数据结构与算法】之深入解析“组合总和II”的求解思路与算法示例
  4. html全屏播放一段视频,显示HTML5视频全屏(Show HTML5 Video Fullscreen)
  5. 【课题总结】OpenCV 抠图项目实战(3)抠图综述
  6. 小贷公司的风险成因及应对策略——风险篇
  7. 利用 CocoaPods 服务器中的一个 RCE 漏洞,投毒数百万款app
  8. swing怎么监听其他类的按钮_Swing舞出我人生 Vol.05 / 我想通过跳舞去寻找自己
  9. 服务器获取用户信息失败是什么原因,花粉俱乐部获取用户信息失败怎么解决?花粉俱乐部登录失败是什么原因?[多图]...
  10. 十天学会php之第二天
  11. Python实现抓取CSDN热门文章列表
  12. 地球人口承载力估计(YZOJ-1021)
  13. Bandizip安装教程
  14. 使用D2D出现的错误
  15. Mac 上安装mysql
  16. mbk文件导入到oracle,linux下启动oracle
  17. elasticsearch-7.2.1启动报错
  18. OpenCV 学习笔记-day13 像素值统计 统计计算最大最小值,平均值和标准差 (minMaxLoc()和meanStdDev()函数的使用)
  19. 国产数据库《人大金仓v8》适配过程问题解决记录
  20. MongoDB集群之分片集群 Shard Cluster

热门文章

  1. AR算法原理在计算机视觉中的应用
  2. 最短路径算法之Dijkstra算法(java实现)
  3. UEFI应用与编程--Dump ALC662 Verb Table
  4. 三种嵌入式操作系统比较
  5. Charles注册、破解(避免30分钟自动kill掉)
  6. 开发了一款开虚拟店通过百度网盘卖成千上万本电子书虚拟商品自动发货机器人软件助手
  7. 使用Python获取上市公司资讯,并进行判断利好利空消息(判断部分待更新)
  8. Docker 安装及镜像加速器配置
  9. glassfish插件_可扩展GlassFish v3的JavaEE 6平台
  10. 关于SharePoint中文翻译的吐槽