0

iPod用のアプリケーションを作成しています。それを実行すると、ネイティブの iPod ミュージック アプリはバックグラウンドで引き続き再生されるはずですが、そうはなりません。

アプリで再生される音と関係があるのではないかと思います。ある時点で短い音を再生するには、AVAudioPlayer を使用しています。コードは次のようになります。

NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
        NSLog(@"%@", path);
        player = [[AVAudioPlayer alloc] initWithData:[NSData dataWithContentsOfFile:path] error:nil];
        [player prepareToPlay];
        [player play];

これは、iPod のネイティブ ミュージック プレーヤーに干渉する可能性がありますか? そして別のこと。私のアプリでは AdWhirl を統合しており、AudioToolbox を使用しているようです。

どうもありがとう、ジョージ

4

1 に答える 1

1

アンビエントカテゴリを使用するには、AVAudioSessionを設定する必要があります。これは、サウンドがすでに再生されているサウンドとブレンドする必要があることをシステムに通知します。iOS 4でこれを行う最良の方法は、次のようにアプリデリゲートを使用することです。

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
    // ...
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // reactivate audio session
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
}

オーディオセッションを読んでください。アプリがサウンドを生成する場合は、オーディオセッションを常に意識して制御する必要があります。

于 2011-01-16T20:21:17.210 に答える