Airplay开发

  • 前言:

     公司在2015年5月立项做一款硬件类产品,使用SOC(CPU+DSP)芯片方案做一款高清会议室终端,除了会议功能之外,需要具备多路无线投屏功能。项目从5月份立项、历经搭建团队、研发、生产、测试,至2016年1月完成一期功能和试产,期间经历很多困难和曲折,现分一个系列做下回顾,本篇讲下Airplay。

  • Airplay:

     关于Airplay的基础知识,大家可以baidu自行搜索,作为入门进行学习。苹果没有开发Airplay具体协议,国外这个网站(http://nto.github.io/AirPlay.html)做了一些破解分析,不是很全面,但可以作为整理了解学习。

     Airplay主要有4个部分:图片(iOS9之后采用镜像方式)、视频、音乐、镜像;其中音乐部分,苹果可以通过授权进行合作,其余部分苹果都没有开放。也就是说,现有支持的方式只能是通过破解和学习iPhone-Apple TV之间的信令流程进行仿制开放。这样就会存在问题,每次iOS升级之后,都需要做一些适配工作;由于协议了解的不全面,还未导致一些不常用的功能缺失。现在市面上的大多数支持Airplay协议的智能电视机或机顶盒,或多或少都存在一些问题。

     我们公司的产品,作为全球首家支持多路Airplay Server端产品,又是最先支持iOS9的厂家之一(2015/11月份就已支持),在这方面投入了重金和重兵进行了开发,现把开发过程梳理如下

  • 开发过程:
  •      2015/6-2015/7月,学习

     这个阶段就是学习,学习,学习。从对Airplay的一窍不通,到知道需要破解,到知道没有任何开源代码支持,到之后可以有部分开源代码+部分破解+部分自研开发,最后形成了完整的解决方案以及第三方合作方案

     这个过程中,通过调研,发现破解解密库部分的工作量比较大,且我们的团队中没有类似的人才(需要使用汇编),最后决定和第三方合作进行开发。第三方合作寻找的较为顺利,找了一些公司、也找了一些独立的研发团队,最后在综合考虑之后,和某个独立团队进行了合作。

  •      2015/7-2015/9月,SOC平台的移植,镜像开发

     基于这个开源代码(https://github.com/juhovh/shairplay),进行开发,还需要移植一些依赖库。在这个基础上,再开发镜像功能和多路功能。

  •      2015/10-2015/12月,iOS9开发

     iOS9和之前的流程差别比较大。解密库部分做了很大的变化,复杂了很多。流程也有了一些变化,图片走了镜像的流程;画面静止后,不会发流等修改;

  •      2016/1月-至今,手机兼容性适配,稳定性优化,iOS10适配等

     这方面的工作,在基本功能开发完成之后,就已经开始。

     稳定性方面问题还比较多,主要存在在图片、视频、音乐、镜像之间的频繁切换;各个音乐视频播放器的兼容性方面

     iOS10的改动并不是很大, 主要在于抓包对比

  • 经验教训:
  • Airplay开发难度主要在解密库部分,这部分需要破解苹果TV的库,反汇编并修改进行,此部分未节省工作量,我们采用了和第三方合作开发
  • 如果是基于Android平台开发,则视频部分直接调用Android播放器接口即可,省去了很多文件格式、音视频编码的工作量
  • 如果基于Linux平台开发,则播放器部分需要从零开始开发,工作量还是比较大,周期也会比较长。我们当前支持了iOS比较常见的MOV和MP4格式
  • 由于各个音乐播放器也会实现音乐功能,所以还存在了一定量的兼容适配性工作,以我们暂时的观察来看,QQ音乐、网易音乐等实现都不太一样

 

对技术感兴趣的可以加QQ群讨论:582349005

对我司产品有兴趣的可以访问我司官网

   必捷网络无线投屏SDK

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值