零基础学习iOS|直播|之播放

发布时间 - 2026-01-10 22:08:46    点击率:

对于|直播|来说,客户端主要做两件事情,推流和播放。今天先讲播放。

播放流程

  1. 拉流:服务器已有|直播|内容,从指定地址进行拉取的过程。其实就是向服务器请求数据。
  2. 解码:对视屏数据进行解压缩。
  3. 渲染:生成图片的过程。视屏其实就是一张张连续的图片进行切换,一张图片就是一帧。帧率顾名思义就是每秒显示的图片数,当帧率达到16时,人眼就会认为是流畅的。是不是很神奇。

这里的每个步骤能弄明白都可以成为人才了,如果还能解决其中的不足,那你就是尖端人才了。弄懂这些需要耗费大量的时间,还好有ijkplayer视屏|直播|框架,有了它,即时你不懂这些过程,也可以进行|直播|播放,大神真多。

ijkplayer视屏|直播|框架

ijkplayer视屏|直播|框架下载地址,这是开源的,喜欢研究源码的同学可以去下载,,基于ffmpeg,同时支持iOS和Android,非常强大。上述的三个过程它全给你做好了,只要你集成到自己工程里,就能实现播放|直播|了。

&emsp ;集成到自己的工程中,最好先打包,我这里用打包好的debug模式下的,可以去http://xiazai./201612/yuanma/IJKMediaFramework.framework_jb51.rar下载。怎么集成的,同学们可以去看这篇文章《详解iOS中集成ijkplayer视频|直播|框架》。和导入第三方库一样,导入到自己工程中,同时还要添加依赖的动态库。

|直播|

#import "FHLiveViewController.h"
#import <IJKMediaFramework/IJKMediaFramework.h>
#import <UIImageView+WebCache.h>
// ijk下载地址: https://pan.baidu.com/s/1c2p9D0s
@interface FHLiveViewController ()
// 播放器
@property (nonatomic, strong) IJKFFMoviePlayerController *playerVC;
@end
@implementation FHLiveViewController

- (void)viewDidLoad {
 [super viewDidLoad];
 // 隐藏导航栏
 [self.navigationController.navigationBar setHidden:YES];
 // 设置背景色
 [self.view setBackgroundColor:[UIColor whiteColor]];
 // 拉流地址
 NSURL *url = [NSURL URLWithString:self.liveUrl];
 // 实例化播放器,传入拉流地址即可
 _playerVC = [[IJKFFMoviePlayerController alloc] initWithContentURL:url withOptions:nil];
 // 准备播放 准备好了自动播放
 [_playerVC prepareToPlay];
 // 设置播放器尺寸
 _playerVC.view.frame = [[UIScreen mainScreen] bounds];
 [self.view addSubview:_playerVC.view];
 // 设置填充模式:铺满
 [_playerVC setScalingMode:IJKMPMovieScalingModeAspectFill];
}
- (void)viewWillDisappear:(BOOL)animated{
 [super viewWillDisappear:animated];
 // 关闭播放时,要停止播放器,否则会崩溃
 [_playerVC pause];
 [_playerVC stop];
}

就这么几行代码,播放就实现了我们仅仅是传了一个拉流地址。这个框架简直是太强大了,自动帮我们完成了拉流、解码、渲染,我们什么都不用做,B站的工程师真是很🐂,剩下的送礼物、聊天室慢慢集成。

demo下载

demo下载地址。下载下来运行,发现报错。

那是因为我没有在工程里上传ijkplayer视屏|直播|框架,我能上传上去,但下载太慢了,什么原因大家都懂得。我把ijkplayer视屏|直播|框架放到http://xiazai./201612/yuanma/IJKMediaFramework.framework_jb51.rar上了,下载下来之后,放到LiveAppDemo-master文件夹里,重新打开就可以运行了。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# iOS  # 直播  # 零基础学习iOS直播之采集  # iOS直播类APP开发流程解析  # 详解iOS中集成ijkplayer视频直播框架  # 视屏  # 播放器  # 下载地址  # 自己的  # 这是  # 上传  # 就会  # 给你  # 那是  # 大家都  # 就能  # 上了  # 还能  # 已有  # 不懂  # 我这  # 不是很  # 我把  # 我能  # 那你 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: iOS中将个别页面强制横屏其他页面竖屏  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel如何配置Horizon来管理队列?(安装和使用)  如何在IIS服务器上快速部署高效网站?  如何在阿里云虚拟服务器快速搭建网站?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  专业商城网站制作公司有哪些,pi商城官网是哪个?  大连 网站制作,大连天途有线官网?  Android中AutoCompleteTextView自动提示  用yum安装MySQLdb模块的步骤方法  Python文本处理实践_日志清洗解析【指导】  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  如何用好域名打造高点击率的自主建站?  java获取注册ip实例  如何用VPS主机快速搭建个人网站?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  JavaScript如何实现倒计时_时间函数如何精确控制  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  北京网站制作的公司有哪些,北京白云观官方网站?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  UC浏览器如何设置启动页 UC浏览器启动页设置方法  如何破解联通资金短缺导致的基站建设难题?  Android利用动画实现背景逐渐变暗  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  香港服务器租用费用高吗?如何避免常见误区?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  html如何与html链接_实现多个HTML页面互相链接【互相】  深圳网站制作平台,深圳市做网站好的公司有哪些?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  phpredis提高消息队列的实时性方法(推荐)  网站制作报价单模板图片,小松挖机官方网站报价?  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  详解Android图表 MPAndroidChart折线图  香港服务器租用每月最低只需15元?  什么是javascript作用域_全局和局部作用域有什么区别?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何用AI帮你把自己的生活经历写成一个有趣的故事?