3

私のアプリでは、再生と記録のカテゴリ別名を使用しています。

UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
CheckError( AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
                                     sizeof (sessionCategory),
                                     &sessionCategory), "Couldn't set audio category");    

アプリでは、これを設定するまで、再生されるオーディオは最初にレシーバーを介して出力されます。

UInt32 doChangeDefaultRoute = 1;        
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);  

ただし、実際に必要なのは、接続されたBluetoothスピーカーからオーディオを出力することです。たとえば、Bluetooth経由で接続するスピーカーがあります。ネイティブミュージックアプリで音楽を再生できます。ただし、私のアプリでは、playandrecord カテゴリを使用すると、デバイスでのみ再生されます。私が試してみました:

UInt32 allowBluetoothInput = 1;
OSStatus stat = AudioSessionSetProperty (
                                         kAudioSessionProperty_OverrideCategoryEnableBluetoothInput,
                                         sizeof (allowBluetoothInput),
                                         &allowBluetoothInput
                                         );

としても:

CFStringRef audioRouteOverride = kAudioSessionOutputRoute_BluetoothHFP;

OSStatus s = AudioSessionSetProperty (kAudioSessionProperty_OutputDestination,
                                      sizeof(audioRouteOverride),&audioRouteOverride);

運がない。これは簡単なプロパティ セットのように思えますが、Idk. 何か案は?

4

4 に答える 4

1

これは可能ですが、Bluetooth デバイスはヘッドセットまたはマイク内蔵の Bluetooth デバイスである必要があります。再生と録音のカテゴリにいる場合、Bluetooth マイクを入力として使用する必要があります。Bluetooth マイクがない場合は、Bluetooth でも再生されません (同時に録音している場合)。また、録音して BT にストリーミングする場合は、8 khz モノラルしか得られないことに注意してください。

于 2014-02-14T09:59:56.893 に答える
0

あなたはこれを考えすぎていたと思います。Bluetooth出力を許可するように最初の部分を設定するだけで、どれにもルーティングしていないことを確認できます。

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,
                         sizeof (audioRouteOverride),
                         &audioRouteOverride);

私はまさにこの正確なことをテストしていました。次に、ルート変更リスナーでは、ヘッドフォンが接続されているなど、他のことだけを気にする必要があります.

于 2013-05-16T03:49:29.050 に答える
0

誰かがこれを理解しようとしている場合、それは不可能です。利用可能なすべてのオーディオ セッション プロパティを徹底的に調べると、これが事実であることがわかります。

于 2012-06-04T15:22:00.163 に答える