【问题标题】:Starting audio in locked screen mode not working在锁定屏幕模式下启动音频不起作用
【发布时间】:2022-09-25 02:41:52
【问题描述】:

我正在开发一个带有警报的计时器应用程序。当屏幕被锁定时,我想让我的警报/文本到语音继续工作。它在 30 到 60 秒之间工作一段时间,然后警报停止工作,但计时器继续工作,因为当我解锁手机时,计时器继续工作。我浏览了很多帖子,但没有找到解决方案。看起来新音频无法在锁定模式下触发(一些帖子说新音频声音无法在锁定模式下触发,但音频的连续性正在工作)。我终于找到了这篇文章-> AVFoundation playing audio in background/on lock screen in Swift

所以我在我的代码中添加了以下几行:

    // to authorize background music in parallel
    try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.ambient)
    try? AVAudioSession.sharedInstance().setActive(true)

    // to play audio in background, lock screen mode
    try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback)

在 info.plist 我有这个条目:

结果是只有当我在音频期间锁定屏幕时,短音频才有效(我每 30 秒触发一次),如果我在两个声音之间进行操作,它就会停止。我花了很多天寻找解决方案,但没有任何效果,有人可以在这里帮忙吗?

再次花费几个小时进一步搜索该主题以及我发现的内容:-> https://developer.apple.com/forums/thread/77937

对很多人来说似乎确实是一个问题,但我不明白为什么我们没有找到任何解决方案,因为我看到许多具有此功能的应用程序都在工作,如果您看到任何好的答案,请告诉我。

    标签: swift audio


    【解决方案1】:

    由于没有人得到答案,我联系了 Apple 开发人员技术支持,得到的回应有点令人惊讶,但没有“干净的方法”可以做到这一点,我得到的答案是: “要继续从后台播放音频,请在后台连续播放音频(大多数情况下这将是无声的,除非您有新的“警报”)” 我用一个 60 秒的silent.wav 文件对其进行了测试,我每 55 秒触发一次,它可以工作!

    【讨论】:

      【解决方案2】:

      从我的研究来看,苹果似乎不会真的让你执行这个动作!您愿意分享/发布您的任何代码吗?

      【讨论】:

        猜你喜欢
        • 2020-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 2011-05-01
        • 1970-01-01
        相关资源
        最近更新 更多