このビデオは、できるアプリの記録です
- オーバーライドサイレントモード
- ロックされた画面を上書きする
- アラーム音楽/メロディーを再生する
私たちのチームは、同様のカスタム iPhone 目覚まし時計に取り組んでいます
誰かが助けてくれたらとてもありがたいです。私はこれを2週間破ろうとしてきました。
デバイスがロックされている場合、以下のメソッドは呼び出されません。だからアラーム音が鳴らない
-(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];