为什么AVAudioPlayer不播放?

时间:2016-04-13 15:46:37

标签: ios iphone audio avfoundation avaudioplayer

我们开发了这个iOS方案:

1)iOS App安排本地推送通知
2)推送是启动AVAudioPlayer音频播放的触发器 - 即使iPhone被锁定(应用程序在后台)

现在有两种情况:

a)推送计划之间的时差超过3小时: 解锁并启动应用程序后,音频确实开始播放

b)推送计划之间的时差小于3小时: 即使没有解锁,音频也会开始播放

我们希望案例b 作为默认案例。几小时后iOS会停止/冻结我们的应用程序吗?有趣的是:在印度设备上似乎没有例子 - 即使时差超过12小时。

有什么想法吗? 非常感谢!

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

在appdelegate中触发didReceiveLocalNotification方法,然后在appdelegate或全局触发一个方法然后使用下面的代码在后台或设备锁中使用AVAudioPlayer播放音频文件

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@“filename”
                                                          ofType:@“type”];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];

player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL
                                                error:nil];

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];


player.numberOfLoops = -1; //Infinite

[player prepareToPlay];

[player play];