2010-07-07 15 views
6

Gibt es eine Möglichkeit, den Benutzer auszuwählen, welches Gerät für die Audioausgabe verwendet wird?Audiogerät auf dem iPhone auswählen

In der Dokumentation habe ich gefunden, dass Sie auswählen können, die Route, indem kAudioSessionProperty_OverrideAudioRoute verwenden entweder:

  • kAudioSessionOverrideAudioRoute_None oder
  • kAudioSessionOverrideAudioRoute_Speaker

aber ich möchte Lassen Sie den Benutzer das Bluetooth-Headset verwenden, um den Ton zu hören.

Wenn Sie in Apples App "Voice memos" suchen, können Sie im Wiedergabemenü oben links über eine Schaltfläche auswählen, welches Audiogerät Sie verwenden möchten. Wenn eine Bluetooth-Headset angeschlossen ist, bringt die Taste ein Menü, das es ermöglicht wählen zwischen:

  • Bluetooth-Headset
  • iPhone
  • Lautsprecher

Gibt es eine Möglichkeit zu erreichen, diese Funktionalität mit Standard-Apple-APIs in meiner eigenen App?

Antwort

13

In 3.1 gibt es zwei Protokolle, die die Ausgabe von Audio an Bluetooth-Geräte unterstützen und die Verwendung hängt vom Zubehör ab. Das erste ist A2DP, das mit Zubehör verwendet wird, das das Empfangen von Stereomusik unterstützt, und das andere ist Freihand für alle handfreien Zubehörteile. Um die erste Option zu aktivieren, müssen Sie die MPVolumeView-Klasse verwenden, die über einen Lautstärkeregler und eine Audiogerät-Auswahlschaltfläche verfügt. Wenn diese Ansicht einer der Ansichten in der App hinzugefügt wird, bietet sie dem Benutzer die Möglichkeit Volumen und ein BT-Gerät auswählen, wenn verbunden (dies ist der einzige Weg, ich fand) Auf der anderen Seite kann die zweite Option

UInt32 bt = TRUE; 
result = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput , sizeof(UInt32), &bt); 

die appliction den Anruf aktiviert werden muß die Audio-Sitzung initialisieren und die corect verwenden Kategorie (es muss die Umcodierung unterstützen, damit dies funktioniert). Nachdem der EnableBluetoothInput gesetzt alle Ein- und Tonausgabe über die Freisprecheinrichtung geführt werden (wenn natürlich verbunden :))

1

Der einfachste Weg, um eine MPVolume Steuerelement hinzuzufügen ist (link to documentation) zu Ihrer Benutzerschnittstelle und setzen Sie showsVolumeSlider = NO und showRouteButton = YES.

Der Benutzer verfügt über eine Routenknopf zum Weiterleiten des Audiomaterials an ein Gerät seiner Wahl.