4

我正在开发一个 Walkie Talkie 应用程序并且基础工作正常。您选择一个用户,记录一条消息,然后通过推送通知发送。他们打开下载和播放消息的应用程序。在遇到Zello之前,我对此非常满意。

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

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

泽洛

2) 消息会流式传输到您的手机并在其他用户仍在讲话时开始播放。

谁能给我一个关于他们是如何做到这一点的线索?我添加了设置音频/voip 背景模式键和初始化音频会话等基础知识:

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

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

4

1 回答 1

1

在 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];

希望它可以帮助你。

于 2012-09-11T06:34:14.420 回答