Posts

Post not yet marked as solved
0 Replies
3k Views
I'm making an iOS audio playback app using AVFoundation. I'm trying to create the simplest possible implementation of playing a 5.1 Surround Sound audio file via AirPlay to an Apple TV 4K.The problem: my 5.1 file is downmixed to stereo. My audioSession.maximumOutputNumberOfChannels always returns 2, even if I connect to Apple TV 4K via Airplay and the Apple TV settings have Dolby Digital 5.1 set to on.I've tested my 5.1 audio file (6 ch, 48000 Hz, 'ec-3' encoded with the official Dolby Digital Encoder utility here: http://dolbyencodingutility.com/) with optical audio in to my Sonos 5.1 system and the channel mappings work correctly.Code here:let audioSession = AVAudioSession.sharedInstance() do { try audioSession.setCategory(AVAudioSession.Category.playback) } catch { print("Couldn't set category") } do { try audioSession.setActive(true) } catch { print("Couldn't init audio session") } print(audioSession.currentRoute.outputs.count) do { try audioSession.setPreferredOutputNumberOfChannels(6) } catch { print("Couldn't set six channels") print(audioSession.maximumOutputNumberOfChannels) print(audioSession.outputNumberOfChannels) } //play audio let path = Bundle.main.path(forResource: "art.scnassets/Woodwind_6Short_Dolby", ofType: "mp4")! let url = URL(fileURLWithPath: path) do { audioPlayer = try AVAudioPlayer(contentsOf: url) print(audioPlayer.format) } catch{ print(error) } audioPlayer.play()
Posted Last updated
.