AudioKit 停止并开始产生奇怪的声音
AudioKit stop and start produce weird sounds
我有 2 个关于 audiokit 中奇怪声音的问题。让我给你解释一下。
我的应用有一个使用音频权限的框架。已经可以播放和录音了。
我尝试了 3 件事。
第一种方法。我使用音频套件添加了一项新功能。当我第一次启动音频套件时,它完美地工作。但是当我转到其他屏幕并授予其他框架权限时,其他框架工作正常但是当我回到音频套件时音量太低。它似乎被削减了 50%,我无法将它提高到 100%。
为了绕过这个,我想我必须停止音频套件并在我必须使用它时重新启动它。但是奇怪的事情发生了。
第二种方法。如果我在使用 other-framework 之前停止音频套件并返回到音频套件并再次重新启动它,它会在播放声音和停止声音时产生奇怪的嗡嗡声。
第三种方法。我使用了 "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"
}
}
我遇到了同样的问题(audiokit-volume cut by 50%)。我必须删除其他代码中的以下行:
let session = AVAudioSession.sharedInstance()
do {
// Configure the audio session for movie playback
try session.setCategory(AVAudioSessionCategoryPlayback,
mode: AVAudioSessionModeMeasurement,
options: [])
我的猜测是必须非常小心地设置会话类别,最好是您的其他框架和 AudioKit 使用相同的 AVAudioSession 设置一次。希望这有帮助。
我遇到了奇怪的声音问题。我通过再次将音频文件分配给节拍器解决了这个问题。不再有奇怪的声音,也不再降低音量。希望对大家有帮助。
我有 2 个关于 audiokit 中奇怪声音的问题。让我给你解释一下。
我的应用有一个使用音频权限的框架。已经可以播放和录音了。
我尝试了 3 件事。 第一种方法。我使用音频套件添加了一项新功能。当我第一次启动音频套件时,它完美地工作。但是当我转到其他屏幕并授予其他框架权限时,其他框架工作正常但是当我回到音频套件时音量太低。它似乎被削减了 50%,我无法将它提高到 100%。
为了绕过这个,我想我必须停止音频套件并在我必须使用它时重新启动它。但是奇怪的事情发生了。
第二种方法。如果我在使用 other-framework 之前停止音频套件并返回到音频套件并再次重新启动它,它会在播放声音和停止声音时产生奇怪的嗡嗡声。
第三种方法。我使用了 "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"
}
}
我遇到了同样的问题(audiokit-volume cut by 50%)。我必须删除其他代码中的以下行:
let session = AVAudioSession.sharedInstance()
do {
// Configure the audio session for movie playback
try session.setCategory(AVAudioSessionCategoryPlayback,
mode: AVAudioSessionModeMeasurement,
options: [])
我的猜测是必须非常小心地设置会话类别,最好是您的其他框架和 AudioKit 使用相同的 AVAudioSession 设置一次。希望这有帮助。
我遇到了奇怪的声音问题。我通过再次将音频文件分配给节拍器解决了这个问题。不再有奇怪的声音,也不再降低音量。希望对大家有帮助。