1 Airplay背景知识

Airplay属于局域网内异构设备之间分享多媒体数据的一种通信协议。Airplay设备有客户端和服务器之分,一般将小屏IOS设备实现为Airplay客户端,大屏幕设备实现为Airplay服务器。即iPhone, iPad, iPod一般为Airplay客户端,iTV, Macbook设计为Airplay服务器,在小屏和大屏之间分享视频、照片和音乐。Airplay属于私有协议,版权Apple公司所有。

IOS设备的保有量非常大,如果Android机顶盒能够支持IOS设备的Airplay协议,实现为Airplay服务器,能够接收和处理来自IOS设备的多媒体数据(视频、照片和音乐),将能提高Android机顶盒的竞争力。

技术点分析:Airplay服务器端包含3个服务:DNS服务发现服务;基于HTTP协议的Airplay服务和基于UDP的Airtunes服务。DNS服务发现服务,在linux系统中有开源的AVAHI库,其他两个服务需要基于Airplay协议去实现。

2 Airplay概念图

Airplay客户端:iPhone, iPad, iPod等IOS设备

Airplay服务器:iTV, Macbook, AndriodTVBox

网络:Wifi无线局域网

Airplay服务端包含的协议:DNS服务发现协议、HTTP协议、TCP/UDP协议、Airplay协议

Airplay服务端包含的服务:DNS服务发现服务、Airplay服务和Airtunes服务

3 部分Airplay开源代码(Android平台的较少哦)

Servers

Name

Description

Open

AirServer

The best app for turning your Mac into an AirPlay screen

-

Reflection

Turn your Mac or PC into an AirPlay screen

-

Banana TV

Another app to turn your Mac into and AirPlay screen

-

Casual Share

Mac AirPlay receiever

R

AirMac

Turns you Macintosh into an Airplay receiver (Objective C)

R

Airstream Media Player

C# based AirPlay screen for windows and AirPlay server source code

R

Play2Wifi

An AirPlay server written in Python

R

4 Android平台上Airplay的实现

简要说明一下:实现Airplay,最重要的有两步,第一步是:Airplay服务发布,让IOS设备能发现你;第二步:实现Airplay协议应答,让IOS设备能和你交互。Airplay发布服务,Linux系统中原生的Zeroconf协议,用于发布网络服务。Android平台上并不支持Zeroconf协议。所以需要安装Linux版本的Avahi,Avahi是Zeroconf协议的Linux实现。Avahi服务发布管理系统,支持跨进程发布,其中跨进程的数据交互是通过DBUS-Service的。DBUS服务,Android原生系统就自带。

上面介绍了一下系统库的依赖关系,下面介绍一下如何实现吧。

1 修改DUBS-Service(Andriod)服务的权限,默认是蓝牙才能访问,设置为系统级程序都可以访问。

2 编写一个新的服务【零配置网络发布服务ZeroconfAvahiService】,其中简单封装一下Avahi服务和Avahi-client。并在Android配置文件中,让该服务自启动。

3 AirplayServer程序中,创建Avahi-client,发布Airplay服务。如果IOS设备能发现您的Android设备,恭喜服务发布成功。

4 实现AirplayServer实现Airplay协议,完成与IOS设备的图像、视频数据的交互。Coding, Debugging, 总会成功的。

Android平台Airplay的实现方法相关推荐

  1. Unity跨iOS、Android平台使用protobuf-net的方法

    --------------------------------------> dll预编译的方式使用protobuf http://www.ceeger.com/forum/read.php? ...

  2. Android平台 Psensor传感器调试方法

    一. 驱动层调试 1.在板级dts文件中增加相应的dts代码, 如:调试sensor类,在代码中找到已经有的代码在修改,I2C使用那根(一般为I2C3),I2C地址(找datasheet或者FAE), ...

  3. android的反调试方法,Android平台融合多特征的APP反调试方法与流程

    本发明涉及Android平台融合多特征的APP反调试方法,属于计算机与信息科学技术领域. 背景技术: 应用程序本身并不具备反调试的功能,但是动态调试是动态分析应用逻辑.动态脱壳等攻击方式所采取的必要手 ...

  4. 基于NDK编译Android平台的FFmpeg动态库

    需求 FFmpeg在Linux平台(如Ubuntu)上的支持已经比较完善了,如前述文章介绍 http://blog.csdn.net/ericbar/article/details/73702061, ...

  5. cocos2d js调用java_【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法...

    在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: var o = jsb.reflection. ...

  6. android camera 实时滤镜,【Camera】Android平台Camera实时滤镜实现方法

    Android+JNI+OpenGL开发自己的美图秀秀 2016-01-18 16:39 阅读(5116) 评论(19) Android平台Camera实时滤镜实现方法探讨(十一)--实时美颜滤镜 2 ...

  7. android sdk 封装html5,Android平台以WebView方式集成HTML5+SDK方法

    HTML5+ SDK 可以按照"独立应用"和"单页面"两种种方式进行集成,两种集成方式各有优点. 独立应用集成方式:即Widget集成方式,开发者在集成后可在需 ...

  8. android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法

    android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法 1)获取运营商sim卡imsi号: String android_imsi = telephonyManager.getSub ...

  9. Rockchip Android平台GPU/DDR负载变频阈值调整方法

    Rockchip Android平台GPU/DDR/CPU负载变频阈值调整方法 Rockchip Android平台GPU变频策略调整方法 GPU的变频策略默认是负载变频(simple_ondeman ...

最新文章

  1. 若依微服务版前端怎样在接口返回500时去掉一直弹窗提示服务未找到
  2. 张爱玲《小团圆》的备忘和感想 (一)
  3. 玩转 SpringBoot2.x 之缓存对象 | 原力计划
  4. found.000是什么,能删除吗
  5. 获取一个字符串在另一个字符串中出现的次数
  6. FeliCa简介____带命令协议说明
  7. NAND FLASH简介
  8. excel游戏_Excel集中游戏
  9. 第三阶段:数据存储与计算(离线场景):3.2 数据存储hdfs
  10. 制作删不掉的php唯读档,ppt母版logo删除不了怎么办
  11. 怎样对php手册解除锁定,word锁定怎么解锁
  12. Arcgis实例学习5--统计直方图、空间分布图、统计信息
  13. UE4母材质之法线贴图
  14. 深蓝英文字幕助手(一款看原声影片和英文字幕学英语的小软件)发布
  15. form 表单验证验证方法-validate-methods.js
  16. 线上教育相关的微信公众号图文这样排版,阅读量翻十倍!
  17. 2093321-19-6,PSMA-1007PSMA1007特异性膜抗原(PSMA)抑制剂
  18. Oracle spm
  19. c语言string 用法,C++中的String的常用函数用法总结
  20. CentOS镜像文件下载

热门文章

  1. Python+Pycharm+Anaconda安装步骤详解
  2. Python中float类型、float32类型和float64类型的表示精度,所需内存及其之间的转换
  3. LBM模拟方法学习篇1:安装Xshell和Xftp
  4. 使用PyLint分析评估代码质量
  5. 2021-11-21 根据身高 体重计算出bmi指数,检测自己是否属于肥胖
  6. OSI七层参考模型(开放式系统互联)
  7. Authing | 如何打造一个高效的分布式研发团队
  8. FOC开环驱动电机(开源小项目==FOC控制BLDC电机)
  9. 豆瓣电影TOP250爬取,并获得相关类型的推荐
  10. 如何将CAD图纸由DWG格式转换成PDF格式?