AudioKit 停止并开始产生奇怪的声音
Posted
技术标签:
【中文标题】AudioKit 停止并开始产生奇怪的声音【英文标题】:AudioKit stop and start produce weird sounds 【发布时间】:2018-05-14 13:25:29 【问题描述】:我有 2 个关于 audiokit 中奇怪声音的问题。让我给你解释一下。
我的应用有一个使用音频权限的框架。已经可以播放和录制了。
我尝试了 3 件事。 第一种方法。我使用音频套件添加了一项新功能。当我第一次启动音频套件时,它可以完美运行。但是当我转到其他屏幕并授予其他框架的权限时,其他框架工作正常,但是当我回到音频套件时,音量太低了。它似乎被削减了 50%,我无法将其提高到 100%。
为了绕过这个,我想我必须停止音频套件并在我必须使用它时重新启动它。但奇怪的事情发生了。
第二种方法。如果我在使用其他框架之前停止音频套件并返回到音频套件并重新启动它,它会在播放声音和停止声音时产生奇怪的嗡嗡声。
第三种方法。我使用了来自“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?在 AudioKit 中启动和停止东西还不够吗?它不会让您的应用程序不断经历拆解和构建过程。 我再次开始停止音频套件,因为我的另一个框架基于超级强大的 SDK,它也是另一个音频框架,当它启动时,音频套件的声音减少了 50% @AureliusProchazka 这里有什么帮助吗? 我不使用 Superpowered,我不知道谁在阻止谁制造这个问题。我在第一条评论中询问您是否可以提供一个项目供我检查。 【参考方案1】:我也遇到过同样的问题(audiokit 音量减少了 50%)。我不得不在我的其他代码中删除以下几行:
let session = AVAudiosession.sharedInstance()
do
// Configure the audio session for movie playback
try session.setCategory(AVAudioSessionCategoryPlayback,
mode: AVAudioSessionModeMeasurement,
options: [])
我的猜测是必须非常仔细地设置会话类别,最好是如果您的其他框架和 AudioKit 只使用一次相同的 AVAudioSession 设置。希望这会有所帮助。
【讨论】:
【参考方案2】:我遇到了奇怪的声音问题。我通过将音频文件再次分配给节拍器来解决这个问题。不再有奇怪的声音,也不再降低音量。希望对大家有所帮助。
【讨论】:
以上是关于AudioKit 停止并开始产生奇怪的声音的主要内容,如果未能解决你的问题,请参考以下文章
AudioKit - 尝试在 Audio Kit 5 中生成声音