Objective c 如何在ios8中播放通知操作中的音频?

Objective c 如何在ios8中播放通知操作中的音频?,objective-c,push-notification,apple-push-notifications,ios8,Objective C,Push Notification,Apple Push Notifications,Ios8,我正在尝试使用新的ios8通知操作,让用户从锁定屏幕播放音频 我设法在后台下载数据,但avaudioplayer似乎无法播放 任何帮助都将不胜感激 代码如下: - (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:

我正在尝试使用新的ios8通知操作,让用户从锁定屏幕播放音频

我设法在后台下载数据,但avaudioplayer似乎无法播放

任何帮助都将不胜感激

代码如下:

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString       *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler
{
//handle the actions
if ([identifier isEqualToString:@"ACCEPT_IDENTIFIER"]){
    Message *newMessage = [Message rawMessageToInstance:[userInfo valueForKey:@"message"]];
    AVAudioSession* session = [AVAudioSession sharedInstance];
    BOOL success; NSError* error;
    success = [session setCategory:AVAudioSessionCategoryPlayback
                             error:&error];
    if (!success)
        NSLog(@"AVAudioSession error setting category:%@",error);
    [session setActive:YES error:nil];
    NSLog(@"%lu",newMessage.identifier);
    [ApiUtils downloadAudioFileAtURL:[newMessage getMessageURL] success:^void(NSData *data) {

        AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:data error:nil];
        [player setVolume:2];
        [player play];
        [self performSelector:@selector(completeNotif:) withObject:completionHandler afterDelay:[player duration]];
    } failure:^(){
        completionHandler();
    }];
}
}

我也有同样的问题。。。首先,我提出,它必须与背景和声音播放选项做一些事情-所以我在info.plist中添加了背景音频标志

使用标准AVAudio stuf,它可以在模拟器上工作,但不能在设备上工作。特别的钩子是,你想在后台启动音频,所以在开始使用AVAudioPlayer之前,添加anger的代码,它也可以在设备上运行

希望这对我有帮助,对我来说它是有效的