airplay 安卓端reciver 实现:
https://github.com/KqSMea8/AirplayServer
此项目存在部分bug,本人有做优化,目前功能稳定
记一次上面demo项目移植到自己项目的bug,本人项目是系统内置apk,
首先应用启动时报:
type=1400 audit(0.0:150): avc: denied { write } for name=“com.kandaovr.meeting.screenshare-NTGJvDIA-a15t2RsCWVMQg==” dev=“dm-2” ino=794626 scontext=u:r:system_app:s0 tcontext=u:object_r:apk_data_file:s0 tclass=dir permissive=0
解决方法见:https://blog.csdn.net/qq_38996911/article/details/124709028
需要给系统应用配置读写权限。
其次报:dev/socket/mdnsd not find , dnsd文件没找到,是因为在启动dns发现服务前没有调用 getSystemService(Context.NSD_SERVICE);
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "onCreate:");
// 启动发现服务 生成mdnsd文件
getSystemService(Context.NSD_SERVICE);
AirplayServerManager.getInstance().setAirplayStateListener(this);
AirplayServerManager.getInstance().startDiscoverServer();
}
public void startDiscoverServer() {
// 固定端口
mDNSNotify.changeDeviceName();
mDNSNotify.registerAirplay(AirPlayServer.airplayPort);
mDNSNotify.registerRaop(RaopServer.raoPort);
}