2014-10-23 5 views
4

Кто-нибудь знает, как передавать аудио в несколько пунктов назначения AirPlay? По-видимому, это было возможно через Core Audio в какой-то момент в прошлом, но на 10.9 и 10.10 это не представляется возможным. iTunes делает это, так в чем секрет? Вот код, я попытался увидеть, если я мог бы получить эту работу:Потоковое аудио на несколько устройств AirPlay

OSStatus err = 0; 
UInt32 size = sizeof(UInt32); 

SSAudioSource * targetSource = airplayDevice.airplaySources[0]; 
AudioDeviceID airPlayDeviceID = targetSource.deviceID; 
    SSAudioSource * source1 = airplayDevice.airplaySources[0]; 
    SSAudioSource * source2 = airplayDevice.airplaySources[1]; 
    SSAudioSource * source3 = airplayDevice.airplaySources[2]; 

    AudioDeviceID alldevices[] = {source3.sourceID, source2.sourceID, source1.sourceID}; 
AudioObjectPropertyAddress addr; 
addr.mSelector = kAudioDevicePropertyDataSource; 
addr.mScope = kAudioDevicePropertyScopeOutput; 
addr.mElement = kAudioObjectPropertyElementMaster; 

// Set the 'AirPlay' device to point to all of its sources... 
err = AudioObjectSetPropertyData(airPlayDeviceID, &addr, 0, nil, size, alldevices); 

AudioObjectPropertyAddress audioDevicesAddress = { 
    kAudioHardwarePropertyDefaultOutputDevice, 
    kAudioObjectPropertyScopeGlobal, 
    kAudioObjectPropertyElementMaster 
}; 

// ...now set the system output to point at the 'AirPlay' device 
err = AudioObjectSetPropertyData(kAudioObjectSystemObject, &audioDevicesAddress, 0, nil, size, &airPlayDeviceID); 

Независимо от того, как я устраиваю устройство в массиве, не только звук выходит из первого устройства (индекс 0) массива. Так в чем секрет? Благодаря

ответ

1

Я поднял отчет об ошибке с Apple, для этого еще в июле и получил ответ в октябре:

Engineering определил, что не существует никаких планов по решению этой проблемы .

Я вернулся в Apple, спрашивая, почему функциональность была удалена, но не надеется на (своевременную) реакцию.

Для чего это стоит, я думаю, что ваш подход правильный, это похоже на то, как я работал в прошлом для приложения. Я подозреваю, что iTunes использует аудиоустройства или что-то похожее на несколько колонок.

+0

Ну, это несчастливо, но спасибо за ответ. Если вы найдете альтернативный способ заставить это работать, я бы очень хотел услышать, как это сделать. – Lazloman

Смежные вопросы