如何在iPhone上以锁定模式播放声音

如何在iPhone上以锁定模式播放声音,iphone,avaudioplayer,locked,Iphone,Avaudioplayer,Locked,每个人都知道在用户按下锁定按钮(无声声音)后,保持应用程序活动的标准程序。 如果我使用AVAudioPlayer启动声音(在iphone锁定之前),声音会一直播放到结束(锁定之后)。该应用程序仍在运行。如果我在iPhone锁定时尝试启动另一个声音,它将永远无法播放。所有其他的东西都可以,但是声音不行 当iphone被锁定时,我如何播放声音?如果问题是你的应用程序在屏幕锁定后无法入睡,那么这个问题已经得到回答,因此如果问题是你的应用程序在屏幕锁定后无法入睡,然后这个问题已经得到了回答,所以我不确定

每个人都知道在用户按下锁定按钮(无声声音)后,保持应用程序活动的标准程序。 如果我使用AVAudioPlayer启动声音(在iphone锁定之前),声音会一直播放到结束(锁定之后)。该应用程序仍在运行。如果我在iPhone锁定时尝试启动另一个声音,它将永远无法播放。所有其他的东西都可以,但是声音不行


当iphone被锁定时,我如何播放声音?

如果问题是你的应用程序在屏幕锁定后无法入睡,那么这个问题已经得到回答,因此如果问题是你的应用程序在屏幕锁定后无法入睡,然后这个问题已经得到了回答,所以我不确定你的问题在哪里,但是你是否设置了音频类别以允许混音

const UInt32 categoryProp = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(categoryProp), &categoryProp);

UInt32 category = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);

const UInt32 setProperty_YES = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(setProperty_YES), &setProperty_YES);

我不确定你的问题在哪里,但是你是否设置了音频类别以允许混音

const UInt32 categoryProp = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(categoryProp), &categoryProp);

UInt32 category = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);

const UInt32 setProperty_YES = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(setProperty_YES), &setProperty_YES);

现在一切都好了!我错过了一份日志声明。好像我的音频缓冲区被淹没了


感谢所有试图帮助我修复此问题的人。

现在一切正常!我错过了一份日志声明。好像我的音频缓冲区被淹没了


感谢所有试图帮助我解决这个问题的人。

那么,为什么要让你的应用保持活力?如果你不打算做一些跟踪系统,我看没有理由。如果您在启动时需要一些数据,请使用sqlite表或coredata框架!除了跟踪系统之外,还有很多理由让应用程序保持活动状态。那么,为什么要让应用程序保持活动状态呢?如果你不打算做一些跟踪系统,我看没有理由。如果您在启动时需要一些数据,请使用sqlite表或coredata框架!除了跟踪系统,还有很多理由让应用程序保持活跃。这个问题还没有答案。IdleTimer不是一个选项,音频会话的配置与您的示例中完全相同。问题是,如果手机被锁定,我无法发出新的声音。我可以播放声音(代码执行正常),但你听不到。@Joe你应该能够在屏幕锁定时播放声音,你不需要禁用空闲计时器,但你必须继续播放声音。我的手机每10秒播放一次静音,以防止深度睡眠。要验证您的问题,请让您的应用程序在设备上运行,直到它停止工作,然后通过usb将您的手机连接到xcode,并查看organizer中的控制台日志,您将看到操作系统关闭一切并使系统进入睡眠状态。唯一的方法(在操作系统4之前)是每10秒左右播放一次声音。请看,如果你的应用发生了这种情况,那么你需要更频繁地播放声音以保持它的活力。是的,我按你的方式播放(播放无声声音),但我想稍后再播放另一个未播放的声音。这声音听不见。保持应用程序的活力不是问题。也许我当时误解了这个问题。。。我以为应用程序将进入深度睡眠,因此声音无法播放。您是否可以在控制台上查看日志条目以验证应用程序是否仍在运行并尝试播放声音,但您什么也听不到?这就是问题所在吗?这个问题还没有回答。IdleTimer不是一个选项,音频会话的配置与您的示例中完全相同。问题是,如果手机被锁定,我无法发出新的声音。我可以播放声音(代码执行正常),但你听不到。@Joe你应该能够在屏幕锁定时播放声音,你不需要禁用空闲计时器,但你必须继续播放声音。我的手机每10秒播放一次静音,以防止深度睡眠。要验证您的问题,请让您的应用程序在设备上运行,直到它停止工作,然后通过usb将您的手机连接到xcode,并查看organizer中的控制台日志,您将看到操作系统关闭一切并使系统进入睡眠状态。唯一的方法(在操作系统4之前)是每10秒左右播放一次声音。请看,如果你的应用发生了这种情况,那么你需要更频繁地播放声音以保持它的活力。是的,我按你的方式播放(播放无声声音),但我想稍后再播放另一个未播放的声音。这声音听不见。保持应用程序的活力不是问题。也许我当时误解了这个问题。。。我以为应用程序将进入深度睡眠,因此声音无法播放。您是否可以在控制台上查看日志条目以验证应用程序是否仍在运行并尝试播放声音,但您什么也听不到?这就是问题所在吗?我知道这是老帖子。。。你能把这个答案和你接受的答案合并并删除这个答案吗?我知道这是一个旧帖子。。。您能否将此答案与您接受的答案合并并删除此答案?