Iphone iOS对讲机应用程序在后台播放音频

Iphone iOS对讲机应用程序在后台播放音频,iphone,ios,Iphone,Ios,我正在开发一款对讲机应用程序,基本功能正常。您选择一个用户,记录一条消息,然后通过推送通知发送该消息。他们打开下载和播放信息的应用程序。在我遇到它之前,我一直很开心 他们正在做两件有趣的事情: 1) 如果您收到一条消息,并且应用程序正在后台运行,它将显示一条通知并开始播放消息,而无需打开应用程序 2) 当其他用户仍在通话时,信息将以流式传输至手机并开始播放 有人能告诉我他们是怎么做的吗?我添加了一些基本功能,如设置音频/voip背景模式键和初始化音频会话: [[AVAudioSession s

我正在开发一款对讲机应用程序,基本功能正常。您选择一个用户,记录一条消息,然后通过推送通知发送该消息。他们打开下载和播放信息的应用程序。在我遇到它之前,我一直很开心

他们正在做两件有趣的事情:

1) 如果您收到一条消息,并且应用程序正在后台运行,它将显示一条通知并开始播放消息,而无需打开应用程序

2) 当其他用户仍在通话时,信息将以流式传输至手机并开始播放

有人能告诉我他们是怎么做的吗?我添加了一些基本功能,如设置音频/voip背景模式键和初始化音频会话:

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];

但我不确定如何超越这一点

在viewdidload方法中尝试以下代码:

    NSError *setCategoryErr = nil;
    NSError *activationErr  = nil;
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryErr];
    [[AVAudioSession sharedInstance] setActive: YES error: &activationErr];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;
    newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];

希望对您有所帮助。

谢谢您提供的代码示例。我试过了,但还是不起作用。我开始认为插座是有关系的。我会继续挖。