如何将音频输出发送到 Apple TV?
Posted
技术标签:
【中文标题】如何将音频输出发送到 Apple TV?【英文标题】:How to send audio output to Apple TV? 【发布时间】:2016-04-20 06:00:16 【问题描述】:我想添加一个按钮来将音频输出发送到 Apple TV。我使用下面的代码,但它不起作用。你能帮我做错吗?
首先我将 AVAudiosession 类别更改为 AVAudioSessionCategorySoloAmbient(为了搜索连接的 iOS 7 和 8 蓝牙设备,我必须这样做。)
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategorySoloAmbient error:&err];
然后我用这个方法将音频切换到Apple TV
- (BOOL)switchAirPlay:(BOOL)onOrOff
NSError* audioError = nil;
BOOL changeResult = NO;
if (onOrOff)
self.bipAudioSessionManagerDeviceCurrent = Device_AppleTV;
AVAudioSessionPortDescription* airplayPort = [self airplayAudioDevice];
changeResult = [[AVAudioSession sharedInstance] setPreferredInput:airplayPort error:&audioError];
else
AVAudioSessionPortDescription* airplayPort = [self airplayAudioDevice];
changeResult = [[AVAudioSession sharedInstance] setPreferredInput:airplayPort error:&audioError];
if (audioError)
DDLogError(@"Apple TV error, audioSession: %@ %zd %@", [audioError domain], [audioError code], [[audioError userInfo] description]);
if (!changeResult)
DDLogError(@"Apple TV error, audioSession: %@ %zd %@", [audioError domain], [audioError code], [[audioError userInfo] description]);
return changeResult;
- (AVAudioSessionPortDescription*)airplayAudioDevice
NSArray* builtinRoutes = @[AVAudioSessionPortAirPlay];
return [self audioDeviceFromTypes:builtinRoutes];
- (AVAudioSessionPortDescription*)audioDeviceFromTypes:(NSArray*)types
NSArray* routes = [[AVAudioSession sharedInstance] availableInputs];
for (AVAudioSessionPortDescription* route in routes)
if ([types containsObject:route.portType])
return route;
return nil;
编辑 1: 根据https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionBasics/AudioSessionBasics.html 中的文档,AVAudioSessionCategoryAmbient 类别支持 AirPlay。
编辑 2:
NSArray *inputs = [[AVAudioSession sharedInstance] availableInputs];
尽管 iphone 连接到 Apple TV,但输入的大小为 1。我不明白为什么 size 不等于 2。
【问题讨论】:
【参考方案1】:您使用 AirPlay 发送音频,请访问此链接 https://spin.atomicobject.com/2012/04/23/ios-mirroring-and-programmatic-airplay-selection/
【讨论】:
谢谢,但我需要一个关于我的代码的建议,它可以处理蓝牙、earPeace、iphone、iphone 扬声器,但为什么不能播放。以上是关于如何将音频输出发送到 Apple TV?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 4K HDR 视频流式传输到 Apple TV 4K?
从IOS设备播放音频/视频内容到Apple TV的起点[关闭]