1

このビデオは、できるアプリの記録です

  • オーバーライドサイレントモード
  • ロックされた画面を上書きする
  • アラーム音楽/メロディーを再生する

私たちのチームは、同様のカスタム 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];
4

1 に答える 1