Post not yet marked as solved
Hi,
I'm working on Bonjour to enable Airplay client service and set like the following
dns-sd -R myAirplayService _airplay._tcp local 7000
after that
I got the following log
DATE: ---Thu 14 Oct 2021---
16:36:50.939 ...STARTING...
16:36:51.159 Got a reply for service sooairplay._airplay._tcp.local.: Name now registered and active
it seems working but I can't find my service by my Iphone.
what's the correct way to set Airplay client by "dns-sd"
command?
Post not yet marked as solved
Hi all,
I am looking for the information about the Airplay2 (client) implementation on linux but there aren't much info about it.
As far as I searched on the internet, it seems possible to implement it on the linux by Swift which is cross platform supported solution, but I wonder what the specific procedure for developing Airplay 2 on the linux .
Is Apple providing Airplay2 source code in Swift form?
Is there any detail guide about this?
if there's is any person who have experience about it,
please share the information.
Thanks.
Post not yet marked as solved
I currently have a situation where we have 400+ Apple TVs deployed in classrooms to act as AirPlay receivers. I'm having an issue with MacBooks somewhat randomly dropping connection from WiFi while connected to the Apple TVs. It appears the MacBooks and Apple TVs connect to each other over AWDL before problems happen, while devices connected over Infra have no issue per console logs. Is there any way to force AirPlay to run over Infra rather than AWDL without completely disabling awdl0?
Post not yet marked as solved
Background
We're writing a small recording app - think Voice Memos for the sake of argument. In our app, users should always record with the built-in iPhone microphone.
Our Problem
Our setup works fine when using just the speakers or in combination with Bluetooth headsets. However, it doesn't work well with Airplay. One of two things can happen:
The app records just silence
The app crashes when trying to connect the inputNode to the recorderNode (see code below), complaining that IsFormatSampleRateAndChannelCountValid == false
Our testing environment is an iPhone Xs, connected to an Airplay 2 compatible Sonos amp.
Code
We use the following code to set up the AVAudioSession (simplified, without error handling):
let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord, options: [.defaultToSpeaker, .allowBluetoothA2DP, .allowAirPlay])
try AVAudioSession.sharedInstance().setActive(true)
Every time we record, we configure the audio session to use the built-in mic, and then create a fresh AVAudioEngine.
let session = AVAudioSession.sharedInstance()
let builtInMicInput = session.availableInputs!.first(where: { $0.portType == .builtInMic })
try session.setPreferredInput(builtInMicInput)
let sampleRate: Double = 44100
let numChannels: AVAudioChannelCount = isStereoEnabled ? 2 : 1
let recordingOutputFormat = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: sampleRate, channels: numChannels, interleaved: false)!
let engine = AVAudioEngine()
let recorderNode = AVAudioMixerNode()
// This sets the input volume of those nodes in their destination node (mainMixerNode) to 0.
// The raw outputVolume of these nodes remains 1, so when you tap them you still get the samples.
// If you set outputVolume = 0 instead, the taps would only receives zeros.
recorderNode.volume = 0
engine.attach(recorderNode)
engine.connect(engine.mainMixerNode, to: engine.outputNode, format: engine.outputNode.inputFormat(forBus: 0))
engine.connect(recorderNode, to: engine.mainMixerNode, format: recordingOutputFormat)
engine.connect(engine.inputNode, to: recorderNode, format: engine.inputNode.inputFormat(forBus: 0))
// and later
try engine.start()
We install a tap on the recorderNode to save the recorded audio into a file. The tap works fine and is out of scope for this question, and thus not included here.
Questions
How do we route/configure the audio engine correctly to avoid this problem?
Do you have any advice on how to debug such issues in the future? Which variables/states should we inspect?
Thank you so much in advance!
Post not yet marked as solved
Using beta but when I open the apple music app click the airplay icon switch to home pod from Mac Mini M1 speakers the home pod lights up but switches back to the M1 speakers. Shut the computer down, bring it back up and do the same process and now it connects to the home pod.
Post not yet marked as solved
I have downloaded movies from iTunes to my iPad. I purchased them and downloaded them directly. When I plug the iPad into my TV via HDMI there is no data consumption at all over the WAN source.
When I try to Airplay to an Apple TV 4K latest version, the same movie attempts to stream instead of playing from the local file.
I am trying to understand why the Apple TV forces the downloaded movie to stream instead of playing from the local copy on the iPad.