Objective c 如何在ios8中播放通知操作中的音频?
我正在尝试使用新的ios8通知操作,让用户从锁定屏幕播放音频 我设法在后台下载数据,但avaudioplayer似乎无法播放 任何帮助都将不胜感激 代码如下: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:
- (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的代码,它也可以在设备上运行 希望这对我有帮助,对我来说它是有效的