生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

播放篇如何快速地开发一个完整的直播

7月27日 心碎巷投稿
  本篇主要讲解的是直播app中,需要用到的一个很重要的开源框架ijkplayer,然后集成这个框架可能对大多数初学者还是比较有难度的,所以本篇主要教你解决集成【ijkplayer】遇见的各种坑。
  在看这篇之前,如果您还不了解直播原理,请查看上篇文章原理篇如何快速地开发一个完整的iOS直播App
  开发一款直播app,集成ijkplayer成功后,就算完成直播功能一半的工程了,只要有拉流url,就能播放直播啦
  本篇主要讲解的是直播app中,需要用到的一个很重要的开源框架ijkplayer,然后集成这个框架可能对大多数初学者还是比较有难度的,所以本篇主要教你解决集成【ijkplayer】遇见的各种坑。
  很多文章,可能讲解的是如何做,我比较注重讲解为什么这样做,大家有什么不明白,还可以多多提出来。
  一、基本知识
  README。md文件
  框架的描述文件,描述这个框架怎么使用
  编译语言
  程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要翻译,所以编译型语言的程序执行效率高,比如OC,C,C
  解释性语言
  解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低
  解释性语言执行和编译语言执行的区别:
  解释性语言一行一行的解析,如果有错误,就不会执行,直接执行下一行。
  编译语言,只要有错,就不能编译,一行都不能执行。
  脚本语言
  属于解析语言,必须通过解释器解析,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。
  python:脚本语言,适合网络应用程序的开发,有利于开发效率,现在显得越来越强大。
  PHP:服务器端脚本语言,适合做动态网站。
  JS:作为客户端的脚本语言,在浏览中解释执行。
  shell:操作系统脚本语言,一般指UnixLinux中使用的命令行。
  编译语言,执行文件是二进制。脚本语言是解释执行的,执行文件是文本。
  shell解释器
  shell是一个命令行解释器,相当于windows的cmd,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户。
  默认Unix都有shell,OS基于Unix,因此OS自带shell。
  bash
  bash是一种shell解释器版本,shell有很多种版本,就像人,也分不同国家的人。
  牛程序员看到不爽的Shell解释器,就会自己重新写一套,慢慢形成了一些标准,常用的Shell解释器有这么几种,sh、bash、csh等
  shell
  通常我们说的shell,指的是shell脚本语言,而不是shell解释器。
  在编写shell时,第一行一定要指明系统需要哪种shell解释器解释你的shell脚本,如:!binbash,使用bash解析脚本语言。
  什么时候使用shell命令,比如有些系统命令经常需要用到,可以把命令封装到一个脚本文件,以后就不用再敲一遍了,直接执行脚本语言。
  比如ijkplayer,就用脚本文件下载ffmpeg,因为下载ffmpeg需要执行很多命令,全部封装到脚本文件中。
  在导入一些第三方框架的时候,经常需要用到一些命令,所以一般都会封装到一个脚本文件中,以后只要执行脚本,就会自动执行集成第三方框架的命令。
  sh:sheel脚本文件后缀名
  二、下载ijkPlayer
  1、去到B站的github主页,找到ijkplayer项目,下载源码ijkplayer下载地址;
  2、打开Demo,查看用法,一般学习第三方库,都是先查看Demo。
  三、编译ijkPlayer的步骤
  1、找到ijkPlayerMediaDemo并运行
  提示’libavformatavformat。h’filenotfound
  bug1
  原因:libavformat是ffmpeg中的库,而ijkplayer是基于ffmpeg这个库的,因此需要导入ffmpeg。
  解决:查看ijkplayer的README。md,一般都会有说明。
  执行脚本
  initios。sh脚本的作用:下载ffmpeg源码
  想了解脚本具体怎么做的,可以查看之前写的文章带你走进脚本世界,ijkplayer之【initios。sh】脚本分析,全面剖析了initios。sh这个脚本做了哪些事情。
  如何执行initios。sh脚本文件
  步骤一:找到initios。sh脚本文件
  找到initios。sh文件
  步骤二:打开终端,cd进入到ijkplayermaster的目录中
  进入initios。sh目录
  注意是cd这个文件夹
  cdijkplayermaster
  步骤三:输入。initios。sh,就会执行当前脚本了。
  执行initios。sh
  执行完脚本后,就会发现ijkplayer中有ffmpeg了
  执行脚本后
  2、下载好ffmpeg源码后,再次运行Demo
  发现还是报’libavformatavformat。h’filenotfound错误
  原因:执行initios。sh,仅仅是下载源码,但是源码并没有参与编译,需要把源码编译成。a文件
  Demo依赖于IJKMediaPlayer库
  Demo源码
  打开IJKMediaPlayer库,查看下源码
  IJKMediaPlayer工程位置
  打开IJKMediaPlayer库
  IJKMediaPlayer源码
  右击,发现FFMPEG中的库都是红的,表示不存在
  解决:查看ijkplayer的README。md
  编译ffmpeg
  编译ffmpeg库
  步骤一:进入到脚本文件的目录下
  cdios
  步骤二:执行。compileffmpeg。shclean
  步骤二功能:删除一些文件和文件夹,为编译ffmpeg。sh做准备,在编译ffmpeg。sh的时候,会自动创建刚刚删除的那些文件,为避免文件名冲突,因此在编译ffmpeg。sh之前先删除等会会自动创建的文件夹或者文件
  步骤三:执行。compileffmpeg。shall,真正的编译各个平台的ffmpeg库,并生成所以平台的通用库。
  执行compileffmpeg。shall前
  编译前
  执行compileffmpeg。shall后
  编译后
  3。再次运行Demo,就能成功了,因为IJKMediaPlayer库获取到ffmpeg库了
  编译完ffmpeg后,IJKMediaPlayer库中显示
  成功获取到ffmpeg库
  cmdr,Demo运行成功
  Demo运行成功
  四、如何集成到ijkplayer到自己的项目中
  注意:ijkplayer的README中的方法比较麻烦,不方便携带,不推荐。
  1。推荐自己把IJKMediaPlayer打包成静态库,在导入到自己的项目中
  如何打包,请参考,iOS中集成ijkplayer视频直播框架,写的非常不错,就不一一详细介绍了,但是只有发布版本的库。
  我自己打包了ijkplayer两个版本库,分别用于调试和发布(DEBUG和Release),点击下载
  由于文件太大上传不了GitHUb,就上传到百度云了
  2。直接把ijkplayer库拖入到自己的工程中
  调试的话,拖入调试版本的ijkplayer库,发布的话,拖入发布版本的ijkplayer库。
  3。导入ijkplayer依赖的库,具体可以查看ijkplayer的README
  五、使用ijkplayer直播
  1。ijkplayer用法简介
  ijkplayer用法比较简单,其实只要有直播地址,就能直播了;
  注意:最好真机测试,模拟器测试比较卡,不流畅,真机就没有问题了。
  2。抓取数据
  抓了很多直播app的数据,发现映客主播的质量是最高的。
  映客主播url:http:116。211。167。106apiliveaggregation?uid133825214interest1
  uid账号ID,这里是我的账号ID
  interest兴趣,1表示只查看女生。
  上下拉刷新的接口没抓到,就一下加载200条数据。
  3。获取拉流url,直播
  IJKFFMoviePlayerController:用来做直播的类
  4。结束播放
  界面不播放,一定要记得结束播放,否则会报内存溢出
  内存bug
  结束语
  后续还会更新更多有关直播的资料,希望做到教会每一个朋友从零开始做一款直播app,并且Demo也会慢慢完善。Demo点击下载。
  由于FFMPEG库比较大,大概100M。
  本来想自己上传所有代码了,上传了1个小时,还没成功,就放弃了。
  提供另外一种方案,需要你们自己导入IJKPlayer库
  具体步骤:
  下载Demo后,打开YZLiveApp。xcworkspace问题
  打开YZLiveApp。xcworkspace问题。
  podinstall就能解决
  下载jkplayer库,点击下载
  把jkplayer直接拖入到与Classes同一级目录下,直接运行程序,就能成功了
  拖入ijkplayer到与Classes同一级目录下。
  注意:不需要打开工程,把jkplayer拖入到工程中,而是直接把jkplayer库拷贝到与Classes同一级目录下就可以了。
  错误示范:不要向下面这样操作
投诉 评论 转载

先天性心脏病到底有哪几种先天性心脏病到底有哪几种?先天性心脏病有以下几种:房间隔缺损,室间隔缺损,动脉导管未闭,肺动脉狭窄,法乐氏四联症,三尖瓣闭锁,主动脉狭窄,主动脉瓣脱垂,大血管异位,单心房,单心……肥胖宝宝对智力有什么影响人们一般都有这样的知识:生下来时体重较重的,大脑发育较好,也就是说这孩子较聪明。这一论断假若已经被公认的话,那么我们对于肥胖者,却不能抱有这种看法。据近年的研究发现,肥胖……播放篇如何快速地开发一个完整的直播本篇主要讲解的是直播app中,需要用到的一个很重要的开源框架ijkplayer,然后集成这个框架可能对大多数初学者还是比较有难度的,所以本篇主要教你解决集成【ijkplayer……你是爬山我是登山外一章一、你是爬山,我是登山有问登山与爬山的不同,有答:登是用脚,爬是手脚并用。有道理,以此为论据说来。越是高海拔,越是陡峭,越是悬浮,越是险峰,就越是爬山,而越不是登山,进而……经销商管理工作的两个前提经销商的管理问题几乎是每家厂家的营销管理层每天都要面对的现实问题,管理成效直接影响到业绩和各项计划的推进,从战术层面来看,经销商的管理问题分为两个部分:一是厂家自身业务人……学生流行性脑脊髓膜炎有哪些传播途径生活中有很多患流行性脑脊髓膜炎的学生,除了因为这些孩子的身体抵抗力和免疫力比较低之外,最主要的患病原因就是被传染,学生流行性脑脊髓膜炎有哪些传播途径?实际上这是一个非常普遍的问……北京的雾霾严重吗近些年来由于各种原因空气污染严重,导致北京出现非常严重的雾霾天气。按照《环境空气质量指数技术规定》的分级方法和危害程度划分为三级:一级(极重污染),即区域连续24小时空气……射手座配对什么星座射手座星座配对分析射手座配对什么星座吗射手座VS白羊座:射手座总是容易被白羊座所吸引,究其原因还是因为白羊座遇事情的果断和爽朗的性格总是会让射手座情不自禁的想要靠近,但是射手座想要靠……防忽悠揭露一个商家惯用的心理战术作者:小凡来源:文澜读书(ID:wenlandushu)在大马路上被人塞小广告也就罢了,运气不好我还会碰到口若悬河推销产品的,你也有过这样的经历吧?所以说有些……学骑自行车上次,我和朋友骑自行车出去玩儿,当时我骑的是四轮自行车,朋友骑的是两轮的,看起来很威风。他突然说:你想学两轮自行车吗?当然,我求之不得呢。从此,我的两轮自行车生涯就要开始喽。……一网情深一开始,在网上,我们认识了。然后就是无聊的聊天。无聊,对无聊。就是无聊,那是我最初走进聊天室的心情。也许,你会嗤之以鼻,但是这是我当初的写照。因为在工作中遇到了不顺……残雪造句用残雪造句大全31)残雪:你也看过王安忆的作品。32)将比鹭鸶还恐屈,始思残雪不如多。清风相引去更远,皎洁孤高奈尔何。贯休33)苏残雪推了一把子轩朔易,后者连忙上前。34)……
冬季专享居家安全厨房装修设计最易忽略的安全因素软软造句用软软造句大全我爱我家抖音早安说说短语努力向前走一步离梦想就更近一步家用路由器辐射大吗养鹦鹉鱼的注意事项该给新生儿用安抚奶嘴吗三包造句用三包造句大全李知县演习逼供如今春色正好晒肉正当时赶快出来晒肉吧海图造句用海图造句大全

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找