I want to write develop an Airplay receiver for iOS device so I can share photos/videos from my iPhone to other iOS devices. First of all, I have to publish Airplay service, and hope it could be detected by other iOS devices like iPhone or iPad. I wrote a pilot program of publishing service, unfortunately it couldn't be detected by other iOS devices. What is wrong with my codes below?
@IBAction func StartPublish(_ sender: UIButton)
{
print("Start publishing...")
if (airplayService == nil)
{
airplayService = NetService(domain: "", type: "_airplay._tcp.", name: "BaoWJ", port: 7000)
airplayService.delegate = self
let dataModel = "AppleTV2,1".data(using: String.Encoding.utf8)!
let dataDeviceID = "DC:37:14:0C:6C:D6".data(using: String.Encoding.utf8)!
let dataFeature = "0x39F7".data(using: String.Encoding.utf8)!
let dataVer = "130.14".data(using: String.Encoding.utf8)!
let txtAirplayDic = ["deviceid": dataDeviceID,
"features": dataFeature,
"model": dataModel,
"srcvers": dataVer
]
let txtAirplayData = NetService.data(fromTXTRecord: txtAirplayDic)
airplayService.setTXTRecord(txtAirplayData)
}
airplayService.publish()
if (raopService == nil)
{
raopService = NetService(domain: "", type: "_raop._tcp.", name: "DC37140C6CD6@BaoWJ", port: 45192)
raopService.delegate = self
let dataAM = "AppleTV2,1".data(using: String.Encoding.utf8)!
let dataCH = "2".data(using: String.Encoding.utf8)!
let dataCN = "0,1,2,3".data(using: String.Encoding.utf8)!
let dataDA = "true".data(using: String.Encoding.utf8)!
let dataET = "0,3,5".data(using: String.Encoding.utf8)!
let dataFT = "0x39F7".data(using: String.Encoding.utf8)!
let dataMD = "0,1,2".data(using: String.Encoding.utf8)!
let dataPW = "false".data(using: String.Encoding.utf8)!
let dataSV = "false".data(using: String.Encoding.utf8)!
let dataSR = "44100".data(using: String.Encoding.utf8)!
let dataSS = "16".data(using: String.Encoding.utf8)!
let dataTP = "UDP".data(using: String.Encoding.utf8)!
let dataVN = "65537".data(using: String.Encoding.utf8)!
let dataVS = "130.14".data(using: String.Encoding.utf8)!
let dataSF = "0x4".data(using: String.Encoding.utf8)!
let txtRaopDic = ["am": dataAM,
"ch": dataCH,
"cn": dataCN,
"da": dataDA,
"et": dataET,
"ft": dataFT,
"md": dataMD,
"pw": dataPW,
"sv": dataSV,
"sr": dataSR,
"ss": dataSS,
"tp": dataTP,
"vn": dataVN,
"vs": dataVS,
"sf": dataSF
]
let txtRaopData = NetService.data(fromTXTRecord: txtRaopDic)
raopService.setTXTRecord(txtRaopData)
}
raopService.publish()
}