Ich habe eine App, die aufgenommene Audiodateien sowie wiederholte Audiodateien wiedergibt. Die Sounds werden korrekt über den integrierten iPad-Lautsprecher wiedergegeben, und wenn ich ein Kabel von der Kopfhörerbuchse an meinen Stereo-Audioeingang anschließe, spielt es auch gut. Wenn ich mein iPad mit meinem Bluetooth-Stereo-Eingang koppeln, funktionieren alle Töne meiner anderen Apps (geschrieben für iPhone, auf meinem iPad) genauso gut wie alle anderen Töne von meinem Gerät.AVAudioPlayer und AVAudioSession spielen nicht auf BlueTooth-Stereo auf dem iPad (2 oder nicht)
Das Problem ist meine App geschrieben für iPad spielt nicht über den Bluetooth-Pfad, sondern spielt stattdessen von den eingebauten Lautsprechern.
NSError *error = nil;
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&error];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
[[AVAudioSession sharedInstance] setActive:YES error:&error];
keine Fehler zurückgegeben Dieser Code wird aufgerufen und es gibt:
In meinem AppDelegate in der didFinishLaunchingWithOptions (...) Methode, habe ich folgendes gelegt.
In meinem Controller-Code, ich habe Proben aufgezeichnet, die ich AVAudioPlayer spielen wie folgt verwendet:
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:recordURL error:&error];
audioPlayer.numberOfLoops = 0;
[audioPlayer setDelegate:self];
[audioPlayer play];
In anderen Bereichen, ich habe Drohnen, die in einem Gewinde gesteuerten Schleife kurze 0,01 Sekunden Töne wiederholt spielen und Ich mache dies mit OpenAL:
alSourcePlay(sourceID);
Dies ist der gleiche Code wie ich in meinen anderen Apps für iPhone geschrieben, die wie gewünscht funktioniert.
Ich weiß, dass es andere Threads in Bezug auf Bluetooth-Eingabe gibt, aber ich habe ein spezifisches Problem mit der Bluetooth-Ausgabe von Audio-Sounds aus meiner iPad App.
Neben Ihrer Frage wird AVAudioSessionCategoryPlayAndRecord das Ausgabevolumen verringern. Wenn Sie nicht VOIP (oder eine andere Aufnahme und gleichzeitig spielen) tun, vermeiden Sie es, Ihre Kategorie auf diese einzustellen. –
Entdeckt ein bisschen mehr Informationen. Ich habe meine AVAudioSession eingerichtet, bevor ich OpenAL konfiguriert habe. Wenn Sie die AVAudioSession-Informationen danach einstellen (alle in der viewDidLoad, nur jetzt am Ende), wird das Audiosignal jetzt an die Bluetooth-Lautsprecher ausgegeben. Jetzt kann ich jedoch nicht aufnehmen. Ich finde, dass es einen Konflikt zwischen Ausgabe zu Bluetooth und Eingabe vom eingebauten Mikrofon geben kann. Irgendwelche Vorschläge? – Cal30