克服锁屏+静音模式播放音频
Posted
技术标签:
【中文标题】克服锁屏+静音模式播放音频【英文标题】:Overcome locked screen + silent mode to play audio 【发布时间】:2013-03-20 11:44:55 【问题描述】:This video是一个app的录音,可以
覆盖静音模式 覆盖锁定屏幕 播放闹钟音乐/旋律我们的团队正在开发一个类似的定制 iphone 闹钟
如果有人能提供帮助,我将不胜感激。我已经试图打破这个两周了。
当设备被锁定时,我们下面的方法不会被调用。这就是为什么没有播放警报声的原因
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
if ([GlobalData gSettings].vibration)
timer = [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
isVibration = YES;
else
isVibration = NO;
self.uinfo = notification.userInfo;
NSString *soundname = [uinfo objectForKey:@"sound"];
NSURL *clip = [[NSBundle mainBundle] URLForResource:soundname withExtension:@"caf"];
if (clip)
self.avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:clip error:NULL];
self.avPlayer.delegate = self;
AudiosessionInitialize (NULL, NULL, NULL, NULL);
AudioSessionSetActive(true);
// Allow playback even if Ring/Silent switch is on mute
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
sizeof(sessionCategory),&sessionCategory);
else
NSURL *clip = [[NSUserDefaults standardUserDefaults]URLForKey:[uinfo objectForKey:@"sound"]];
self.avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:clip error:NULL];
self.avPlayer.delegate = self;
AudioSessionInitialize (NULL, NULL, NULL, NULL);
AudioSessionSetActive(true);
// Allow playback even if Ring/Silent switch is on mute
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
sizeof(sessionCategory),&sessionCategory);
[self.avPlayer play];
【问题讨论】:
“如果有人能提供帮助,我将不胜感激。”什么?你有什么问题? 请看上面的补充 你检查过:***.com/a/14641433/843366 吗?AVAudioSessionCategoryPlayback
为我覆盖了静音模式,答案的另一部分应该可以帮助您锁定屏幕
好的,我会检查谢谢,伙计
我们已经实现了这一点,但在 iOS 6.1.3 中无法播放声音。音量控制似乎增加了,但在 iphone 解锁之前不会出现音频?
【参考方案1】:
我深入研究了 LivingEarth 应用程序。看来他们正在使用基于MMDeepSleepPreventer 的组件。他们使用某种内部警报系统(正在播放的音乐不是由本地通知触发的,而是可能由NSTimer
触发)。
但是,我发现它在较新的 iOS 版本中不可靠,因此我对其进行了一些调整。启动时,它会继续播放静音音频文件,即使用户按下锁定按钮,应用程序也可以运行NSTimers
。
你可以找到我的叉子here。
【讨论】:
以上是关于克服锁屏+静音模式播放音频的主要内容,如果未能解决你的问题,请参考以下文章