私のプロジェクトには、バックグラウンド状態でも新しいオーディオ ファイルの再生をサポートする関数があります。MPMoviePlayerController クラスを使用してオーディオ ファイルを再生します。しかし、私はそれがアクティブな状態で開始されたことを発見しました.その後、バックグラウンド状態で同じオーディオを再生し続けます(オーディオファイルが終了していない場合);しかし、バックグラウンド状態で新しいオーディオを開始しません.
バックグラウンド ステータスで新しいオーディオの再生をサポートするにはどうすればよいですか? iPhone のミュージック プレーヤーは、runloop またはランダム PlayMode を設定すると、バックグラウンド ステータスで新しいオーディオの再生をサポートできることがわかりました。
以下は、実際に外観を証明するための私のコードです。
(void)applicationDidEnterBackground:(UIApplication *)application
{
if (pCotnroller1) {
[pCotnroller1 release];
}
pCotnroller1 = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://r.yhiker.com:9001/0086/32/05/060009/Data/6/00863205060009006_24Kbps.mp3"]];
pCotnroller1.shouldAutoplay = YES;
[pCotnroller1 play];
//it wasn't played here
}
(void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
if (pCotnroller1) {
switch (pCotnroller1.playbackState) {
case MPMoviePlaybackStateStopped:
NSLog(@"播放地址");
break;
case MPMoviePlaybackStatePaused:
NSLog(@"播放暂停");
break;
case MPMoviePlaybackStateInterrupted:
NSLog(@"播放中断");
break;
case MPMoviePlaybackStateSeekingBackward:
break;
case MPMoviePlaybackStateSeekingForward:
break;
default:
break;
}
if (pCotnroller1.playbackState == MPMoviePlaybackStatePlaying) {
//it will come here,and play autoed here
// [pCotnroller1 play];
}
else
{
}
}
}