我有一个声音文件在应用程序中连续播放 . 我想要的是当我的应用程序进入后台我的音频文件应该暂停,当我的应用程序进入前台时,我的音频文件应该开始播放 . 我想要的是什么情况,如果我的音频文件是4分钟并且正在播放并且当前它播放2分钟然后应用程序在后台播放1分钟然后我的音频文件应该从3分钟播放而不是从2开始播放暂停的最小值 . 我不想使用后台模式的功能 . 有没有其他方法可以实现这一目标?我的代码如下:
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath],soundFile]];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
audioPlayer.numberOfLoops =-1;
audioPlayer.volume=0.5f;
if (audioPlayer == nil)
NSLog(@"error playing file.");
else
[audioPlayer play];
2 回答
Step 1
当您的应用程序转到后台或进入非活动状态时,您需要保存当前播放时间 .
您可以使用
AVAudioPlayer
的currentTime属性获取currentTime
您可以将值保存为NSUserDefaults以保持持久性
您可以使用以下委托来检测应用程序非活动状态
Step 2
当您激活时,您可以从
NSUserDefaults
检索数据并使用它从音乐停止的时间开始播放 .要检测状态,您需要使用:
您可以设置
currentTime
属性,以便从停止播放的位置重新开始播放 .将audioPlayer对象置于全局 . 当您的应用程序转到后台时,请在AppDelegate.m中添加以下代码
当您进入后台时,请在AppDelegate.m中添加以下代码