9

Info.plistにプロパティを追加UIBackgroundModesして、配列エントリに「audio」を追加し、オーディオセッションを設定するための呼び出しを追加しました[session setCategory: AVAudioSessionCategoryPlayback error: &error];

しかし、私が持っている唯一のテストデバイスは、マルチタスクをサポートしていないiPodTouch2Gです。シミュレーターを試しましたが、Safariに切り替えると音楽の再生が停止します。ただし、アプリに戻ると、アプリを終了したときよりも遠くの場所で曲が再生され続けます。

バックグラウンドで再生を続けているようですが、別のアプリ(Safari)を使用しているときにアプリの音声が聞こえませんでした。

4

4 に答える 4

18

私も同じ問題を抱えていました。シミュレータでは、オーディオが一時停止し、起動すると再生が再開されます。しかし、デバイスでのテストは完全に機能し、オーディオはバックグラウンドで再生され続けました。私が使用したサンプルコードは

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioPlayer play];
于 2010-07-14T06:32:58.627 に答える
16

バックグラウンドオーディオはiPhoneシミュレータではサポートされていません。出典:WWDC 2010、セッション109-マルチタスクの採用パート2。

于 2010-09-02T13:31:35.857 に答える
2

info.plistに必要なバックグラウンドモードキーを追加しましたか...これを追加しない場合は...info.plistファイルに移動し、[追加]をクリックして[必要なバックグラウンドモード]を追加します。小さな三角形をクリックすると、item0が表示されます。その中に「AppPlaysaudio」を追加します...これは正常に機能します...

〜Raviraja

于 2010-07-08T09:26:15.720 に答える
1

これは私にとってはデバイスでも機能しました。

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioPlayer play];

これと、バックグラウンドオーディオを有効にするためのinfo.plistキーの設定は、iPhoneアプリでバックグラウンドオーディオの再生を有効にするために必要なものです。ただし、一連のオーディオファイルを再生する場合は、次のようなバックグラウンドタスクとして各再生操作を実行する必要があります。

UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:nil];

必要な操作を実行します。

[[UIApplication sharedApplication] endBackgroundTask:bgTask];
于 2010-07-18T11:12:13.770 に答える