2012-01-07 12 views
0

私はAVAudioPlayerを使ってオーディオを再生しているアプリケーションを持っています。すべてがうまくいきます。ユーザーが耳に当てると、電話の上部にあるiPhone内蔵の受信機にオーディオを再ルーティングしたいと思うだけです。iPhone SDK:内蔵の受信機でiPhoneオーディオを再ルーティングする方法は?

私はユーザーが携帯電話を耳に置いたときに近接センサをオフにしました。私は検索しましたが、この機能はiOS 5ではkAudioSessionOutputRoute_BuiltInReceiverを使用しては不可能です。しかし、私はそれを実装する方法を確認しています。

私の現在のコード:

- (void)sensorStateChange:(NSNotificationCenter *)notification 
{ 
    if ([[UIDevice currentDevice] proximityState] == YES) 
    { 
     NSLog(@"Device is close to user."); 

     //I thought the below would change the audio route, but it doesn't work. 

     SET_PROPERTY (kAudioSessionProperty_AudioRoute, UInt32, kAudioSessionOutputRoute_BuiltInReceiver); 
    } 
    else 
    { 
     NSLog(@"Device is NOT close to user."); 
    } 
} 

答えて

0

あなたSET_PROPERTYは何ですか、次のことを行うためのマクロですか?

const CFStringRef audioRouteOverride = kAudioSessionOutputRoute_BuiltInReceiver; 
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride); 

また、アプリの起動(またはより適切な場所)で呼び出して、近接センサが有効になっていることを確認してください:

[UIDevice currentDevice].proximityMonitoringEnabled = YES; 
+0

私は全くそれを宣言していません。私はそれを実装する最も速い方法が何であるか不思議に思っています。 – user1136308

+0

貼り付けたコードに置き換えてください。 – Krizz

+0

私は以下の読書を提案します:http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html – Krizz

関連する問題