视频开发(2)- 自定义视频播放器方案

ps : 临近农历过年, 我趁着这段时间帝都房源多满北京找了几天,终于在6号线屋子学院找了个便宜的房子,交通很方便,就在地铁站门口,房间虽小,但是租户少,室内设置也很全,总体很赞

闲话少说,咱们来继续视频播放器,视频播放器我看大家有一半的人选择使用开源的视频播放器,使用现成的开源播放器有个好处,使用很方便, 大家公司要是对于视频播放界面没什么要求的话,使用开源播放器最合适,集成简单,没有复杂的逻辑

但是呢,现在很多公司 UI 都对本公司视频播放器有自己的 UI 设计,有自己的独特的逻辑操作,这样我们再使用开源播放器的话就不合适了,开源的播放器修改 UI 很不方便,大家说我们可以在开源项目上改啊,是啊,我原来也是这样想的,但是我们看了好几个开源的视频播放器,类层级太多,代码难看,费解,不好改。相信大家大都不是单人开发,就算你看懂了,你的小伙伴呢,好的 app 开发要做到所有的小伙伴对每个模块设计都门清

所以呢,与其费时费力的去改开源项目,还不如自己学习下期中的思路和逻辑,自己写自己的视频播放器,播放内核都是用的 哔哩哔哩开源的 ijkmeidiaplayer ,然后自己封装逻辑层和 UI 层,这样既锻炼了自己的代码能力,也能百分百把控播放模块,才能应对产品,UI 对视频播放模块蛋疼的需求。其实我想说这才是最主要的,不是自己写的,基本都不是那么好改~


常见的视频播放器我列一下,大家可以根据这个去选择自己的学习项目:


我的学习心得

因为打算自己上视频播放器嘛,我在上面的开源项目中挑了几个学习,去看看源码

我是按照下面顺序看的

  1. Android 多媒体 -- 播放器的封装
    这是个小项目,只是简单的教大家使用 TextureView 结合系统原生的 MediaPlayer 显示视频,大家要是对这块比较熟悉了,可以跳过

  2. YCVideoPlayer
    这个项目非常好,API 简单明了,易懂,仿照系统 VideoView + MediaController 的 API,显示和控制分离,这是目前最主流的写法,后面说的百度播放 SDK 也是这个思路。

    • VideoView 作为视频播放器根容器,持有 MediaPlayer 播放核心对象和 TextureView 视频承载 view,并负责与之交互
    • MediaController 作为 UI 操作层,复杂视频播放器中所有的业务界面,把 view 提供给 VideoView ,VideoView 把 MediaController 提供的 view add 进来
      这样视频承载,播放核心,UI 逻辑3者就有效的分离开了,UI 出不同的视频播放器界面时,我们 new 不同的 MediaController 给 VideoView 就好了,VideoView 不用动了,这样才简单,API 才好看,才能方便的扩展,才能百分百支持自定义 UI 设计。不过这个库有个缺点,就是 demo 里面会报错,需要在自己说改,再列表支持方面很弱,需要自己再去研究,比如作者的库再列表 item 画出屏幕时无法停止,画出屏幕也不支持小窗播放
  3. GSYVideoPlayer
    这就是一个反面典型,视频承载,播放核心,UI 逻辑3者在 VideoView 跟容器中没有有效分离,以至于 2 个不同 UI 类型的视频播放器,作者一层套一层的来回继承封装了 10 来层,代码那是一个难看的要死,我估计作者自己理顺一遍都不是太容易了,基本没有扩展性

  4. GSYVideoPlayer 的作者在掘金上写的一偏视频播放要点的文章还是很不错,虽然这个作者自己写的视频播放器难看的要死,但是还是难挡住本篇文章的优秀

  5. 百度播放 SDK
    百度思路也是 视频承载,播放核心,UI 逻辑3者 分离,VideoView + MediaController ,但是再看 demo 时百度的 VideoView 写的很敷衍,是个半成品,VideoView 里面好多对 MediaPlayer 的逻辑居然放在 activity 去实现...... 有失大厂风范啊,回想看 美团 WMRouter 路由的 demo ,差距好大啊~

上面就是我耗时良久之后的心得,看完之后,我果断的决定跟着 YCVideoPlayer 这个项目走,也是 VideoView + MediaController

暂时先这么多,之后有我再加上~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容