0

アプリのオーディオをバックグラウンドで実行したいのですが、このチュートリアルに従いましたが、うまくいきません。ホームボタンを押してもアプリのオーディオが停止し、「applicationDidBecomeActive」または「applicationDidEnterBackground」を呼び出さないことに気付きました(「アプリケーションはバックグラウンドで実行されません」という設定を無効にしても問題は続きました)。私は先週、これに対処していました。

これまでのところ、次の手順を実行しました。

- AVFoundation フレームワークを追加し、宣言

#import <AVFoundation/AVFoundation.h>

ここに画像の説明を入力

- AVAudioSession をオーディオに設定する

NSString *audioName = [NSString stringWithFormat:@"audio%d", (nimages)];
        NSString *soundPath =[[NSBundle mainBundle]pathForResource:audioName ofType:@"mp3"];
        NSURL *soundURL = [NSURL fileURLWithPath:soundPath];
        NSError *error = nil;
        AVAudioPlayer *audio = nil;
        audio = [[AVAudioPlayer alloc]initWithContentsOfURL:soundURL error:&error];
        audio.numberOfLoops = -1;
        audio.volume = 0.9;
        if (error) {
            NSLog(@"%@", [error localizedDescription]);
            NSLog(@"Unable to load file");                
        }else {
            //Make sure the system follows our playback status
            [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
            [[AVAudioSession sharedInstance] setActive: YES error: nil];
            //Load the audio into memory
            [audio prepareToPlay];
        }

-plistに行を追加

ここに画像の説明を入力

更新しました:

私のアプリは、ユーザーがバックグラウンドに入ってもアプリの特定のサウンドトラックを再生できるオーディオ アプリです。出来ますか?

4

3 に答える 3

0

これが機能するには、オーディオを積極的に再生する必要があると思います。アプリが実際にはオーディオ アプリケーションでない場合は、代わりにアプリケーションを VoIP として設定してみてください。これには、アクティブな接続は必要ありません。また、オーディオを使用したい他のアプリケーションをブロックしません。バックグラウンド モードを「アプリは Voice over IP サービスを提供する」に設定するだけで、一度に最大 10 分間バックグラウンドで実行されます。VoIP ソケットを接続してコンテンツをプッシュすることもできます。

于 2013-09-05T16:42:17.673 に答える
0

ここをクリックして「Apple Human Interface」を読むことをお勧めします

アプリが (オーディオ、ダウンロード、更新など) バックグラウンドで動作できる限られた状況がありますが、私が提供したリンクですべてを見つけることができます。

于 2013-09-05T16:43:59.987 に答える