在 iOS 中使用 EPSSampler 时使用系统通道而不是铃声通道

Use system channel instead of ringer channel when using EPSSampler in iOS

我正在使用 EPSSampler 在我的 iOS 小应用程序中弹奏一些音符。它工作得很好,只是声音是通过铃声设置而不是系统音量设置来控制的。问题是,如果铃声关闭,我的应用程序不会发出声音。

我能找到的最接近的是 ,但我无法将该解决方案完全转化为我的解决方案,因为我无法将其与 EPSSampler 的代码相匹配。有什么见解吗?

编辑 澄清一下,唯一专门处理音频的代码包含在 EPSSampler class 中,我的应用只是实例化它,加载 AUSampler 预设,并且调用 EPSSampler 中的音符播放方法,因此解决方案需要更改 EPSSampler 中的某些内容,而不是我的应用程序中的内容——这就是我不发布任何源代码的原因。

事实证明这与 EPSSampler 无关,与配置音频会话无关。以下代码成功了。

NSError *error = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error];

这会教我 RTFM

对于swift(初始化音乐时使用):

_ = try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)