在 iOS 中使用 EPSSampler 时使用系统通道而不是振铃通道
Posted
技术标签:
【中文标题】在 iOS 中使用 EPSSampler 时使用系统通道而不是振铃通道【英文标题】:Use system channel instead of ringer channel when using EPSSampler in iOS 【发布时间】:2017-09-14 16:02:09 【问题描述】:我正在使用EPSSampler 在我的小型 ios 应用中播放一些音符。它工作得很好,除了声音是通过铃声设置而不是系统音量设置来控制的。问题是,如果关闭铃声,我的应用程序就不会发出声音。
我能找到的最接近的是this SO question,但我无法将该解决方案完全转化为我的解决方案,因为我无法将其与 EPSSampler 的代码匹配。有什么见解吗?
编辑澄清一下,EPSSampler 类中包含唯一专门处理音频的代码,我的应用程序只是实例化它,加载 AUSampler 预设,并调用 EPSSampler 中的音符播放方法,所以解决方案需要在 EPSSampler 而不是我的应用程序中进行更改——这就是我不发布任何源代码的原因。
【问题讨论】:
【参考方案1】:原来这与 EPSSampler 无关,而与配置音频会话无关。下面的代码成功了。
NSError *error = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error];
那会教我RTFM。
【讨论】:
【参考方案2】:对于 swift(初始化音乐时使用):
_ = try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
【讨论】:
以上是关于在 iOS 中使用 EPSSampler 时使用系统通道而不是振铃通道的主要内容,如果未能解决你的问题,请参考以下文章