ボタンを追加して、音声出力をApplle TVに送信したいと考えています。私は以下のコードを使用しますが、動作しません。私が間違っていることを助けることができますか?Apple TVにオーディオ出力を送信する方法は?
まず、私はその後、私はアップルにオーディオを切り替えるため、このメソッドを使用しAVAudioSessionCategorySoloAmbient(iOSの7と8のために接続したBluetooth機器を検索するために、私はこれをしなければならない。)
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategorySoloAmbient error:&err];
するAVAudioSessionのカテゴリを変更テレビ
- (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:iphoneは彼のApple TVに接続されているが、入力の
NSArray *inputs = [[AVAudioSession sharedInstance] availableInputs];
サイズは1です。私のサイズは2
おかげでこのリンクを訪問するが、私は自分のコードのためのアドバイスを必要としてください、それはブルートゥース、earPeace、iphoneを扱います、iPhoneのスピーカーが、なぜ空気が再生されません。 – ondermerol