1

重複の可能性:
外部ヘッドセットがiPhoneに接続されているかどうかを確認するにはどうすればよいですか?

オーディオプレーヤーアプリケーションを開発していますが、いずれかのモード(再生モード)でヘッドセットのステータスを検出したいのですが、ジャックが接続されている場合は再生され、そうでない場合は再生されません。

編集以下は私のコードの抜粋です。私がやろうとしていることについての説明もあります。SOで他のスレッドのコードのほとんどを見つけましたが、それでも希望どおりに実行できません。

- (void)isHeadsetPluggedIn {

    UInt32 routeSize = sizeof (CFStringRef);
    CFStringRef route;

    AudioSessionGetProperty (kAudioSessionProperty_AudioRoute,
                             &routeSize,
                             &route);

    NSString* routeStr = (NSString*)route;

    NSRange headsetRange = [routeStr rangeOfString : @"Headset"];
    NSRange receiverRange = [routeStr rangeOfString : @"Receiver"];

    if(headsetRange.location != NSNotFound) {
        // Don't change the route if the headset is plugged in.
        NSLog(@"headphone is plugged in ");
          //here is the place i want to play music
          /* AVAudioPlayer *mySound;

    mySound =[[AVAudioPlayer alloc]initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"apple_SIMToolkitPositiveACK" withExtension:@"mp3" ]error:nil];
    [mySound play];

//here is the place where i must receive the info about plug-in(headset)
*/
    }
    else if (receiverRange.location != NSNotFound) {
        // Change to play on the speaker
        NSLog(@"play on the speaker");

    }
    else {
        NSLog(@"Unknown audio route.");

    }
}
4

0 に答える 0