首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAudioSession选项更改不生效

AVAudioSession选项更改不生效
EN

Stack Overflow用户
提问于 2021-01-03 11:04:13
回答 1查看 52关注 0票数 0

我的iOS应用程序从一个网址播放音频。大多数情况下,我不希望此音频与设备上播放的其他音频混合。

但有时,我确实希望允许音频与设备上的其他音频混合。

当我最初启动我的音频时,它按预期工作;它不会与设备上的其他音频混合(即,在Spotify上播放音乐将停止播放我的音频)。下面是我在这种情况下的调用:

代码语言:javascript
复制
try! AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback)

然后,当我调用以下代码时,它成功地允许我的音频按照需要与其他音频混合:

代码语言:javascript
复制
try! AVAudioSession.sharedInstance().setCategory(.playback, options: .mixWithOthers)

然而,当我试图将其改回不与其他人混合时,它不起作用;来自该设备的其他音频与我的音频一起播放。我再次调用它,就像我最初做的那样:

代码语言:javascript
复制
try! AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback)

你知道为什么我不能把AVAudioSession改回不和其他人混在一起吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-03 12:06:42

我似乎已经修复了这个问题,为我不想与其他设备音频播放混合/可播放的音频调用以下代码:

代码语言:javascript
复制
    do {
        try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default)
        try AVAudioSession.sharedInstance().setActive(true)
    } catch {
        print(error)
    }

并调用此音频,我确实想要混合:

代码语言:javascript
复制
    do {
        try AVAudioSession.sharedInstance().setCategory(.playback, options: .mixWithOthers)
        try AVAudioSession.sharedInstance().setActive(true)
    } catch {
        print(error)
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65546276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档