我有关于audiokit中奇怪声音的2个问题。让我向你解释一下。
我的应用程序有一个使用音频权限的框架。用于播放和录制。
我尝试了3件事。 第一种方法。我使用音频工具包添加了一项新功能。当我第一次启动音频套件时,它完美地工作。但是当我转到其他屏幕并允许其他框架时,其他框架工作正常,但当我回到音频工具包时,音量太低。它似乎减少了50%,我无法将其提升到100%。绕过这个我想我必须停止音频套件并在我必须使用它时再次启动它。但发生了奇怪的事情。
第二种方法。如果我在使用其他框架之前停止音频套件并回到音频套件并重新启动它,它会在播放声音和停止声音时产生奇怪的嗡嗡声。
第3种方法。我使用了来自" MetronomeSamplerSync"的示例代码。我使用了节拍器应用程序的示例代码。在播放时我启动了音频工具包,在停止时我停止了音频工具包。如果产生同样的奇怪声音问题。
这是示例代码。
func startStopAction(met: AKSamplerMetronome, otherMet: AKSamplerMetronome) -> (AKButton) -> Void {
return { button in
// Stop if playing, Start if not playing.
if met.isPlaying {
met.stop()
do {
try AudioKit.stop()
} catch {
AKLog("AudioKit did not stop!")
}
} else {
//If other metronome is playing, sync to it, else just play.
if otherMet.isPlaying {
let now = AVAudioTime(hostTime: mach_absolute_time())
let beatAtNow = otherMet.beatTime(at: now)
met.setBeatTime(beatAtNow, at: now)
} else {
do {
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}
met.play()
}
}
button.title = met.isPlaying ? "Stop" : "Play"
}
}
答案 0 :(得分:1)
我遇到了同样的问题(音频音量减少了50%)。我不得不在其他代码中删除以下行:
let session = AVAudioSession.sharedInstance()
do {
// Configure the audio session for movie playback
try session.setCategory(AVAudioSessionCategoryPlayback,
mode: AVAudioSessionModeMeasurement,
options: [])
我的猜测是必须非常仔细地设置会话类别,如果你的其他框架和AudioKit只使用相同的AVAudioSession设置一次,那么最好。希望这会有所帮助。
答案 1 :(得分:1)