当应用程序在前台时,IOS Play Sound接收推送通知

Tec*_*tic 3 push-notification apple-push-notifications ios

如何在应用程序处于前台状态时接收推送通知时播放声音.

我的代码:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if (application.applicationState == UIApplicationStateActive)
    {
        //create an audio player and play the sound

        NSString *path = [[NSBundle mainBundle] pathForResource:@"whistle" ofType:@"caf"];
        NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: path];
        AVAudioPlayer *theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:NULL];
        theAudio.volume = 1.0;
        [theAudio prepareToPlay];    
        [theAudio play];
    }

    NSLog(@"didReceiveRemoteNotification %@",userInfo);    
}
Run Code Online (Sandbox Code Playgroud)

iPa*_*tel 10

如果是AVPLayer,您应该尝试使用以下代码:

添加以下框架

#include <AudioToolbox/AudioToolbox.h>
Run Code Online (Sandbox Code Playgroud)

并使用此代码,

    SystemSoundID soundID;
    CFBundleRef mainBundle = CFBundleGetMainBundle();
    CFURLRef ref = CFBundleCopyResourceURL(mainBundle, (CFStringRef)@"mySoundName.wav", NULL, NULL);
    AudioServicesCreateSystemSoundID(ref, &soundID);
    AudioServicesPlaySystemSound(soundID);
Run Code Online (Sandbox Code Playgroud)

  • 和`AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);`振动 (3认同)