AudioKit背景音频电池使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AudioKit背景音频电池使用相关的知识,希望对你有一定的参考价值。

我刚从AVAudio切换到AudioKit。为了让事情有效,我必须启用背景音频,因为那时电池使用率很低。

一旦序列或玩家进入和结束,清理和播放背景音频的最佳方法是什么?

任何帮助将不胜感激。

答案

在您的app委托中:

func applicationDidEnterBackground(_ application: UIApplication) {
    conductor.checkIAAConnectionsEnterBackground()
}

func applicationWillEnterForeground(_ application: UIApplication) {
    conductor.checkIAAConnectionsEnterForeground()
}

在您的音频引擎或指挥(根据其他AudioKit示例)中:

var iaaTimer: Timer = Timer()

func checkIAAConnectionsEnterBackground() {

    if let audiobusClient = Audiobus.client {

        if !audiobusClient.isConnected && !audiobusClient.isConnectedToInput {
            deactivateSession()
            AKLog("disconnected without timer")
        } else {
            iaaTimer.invalidate()
            iaaTimer = Timer.scheduledTimer(timeInterval: 20 * 60,
                                            target: self,
                                            selector: #selector(self.handleConnectionTimer),
                                            userInfo: nil, repeats: true)
        }
    }
}

func checkIAAConnectionsEnterForeground() {
    iaaTimer.invalidate()
    startEngine()
}

func deactivateSession() {

    stopEngine()

    do {
        try AKSettings.session.setActive(false)
    } catch let error as NSError {
        AKLog("error setting session: " + error.description)
    }

    iaaTimer.invalidate()

    AKLog("disconnected with timer")
}

@objc func handleConnectionTimer() {
    AKLog("should disconnect with timer")
    deactivateSession()
}

以上是关于AudioKit背景音频电池使用的主要内容,如果未能解决你的问题,请参考以下文章

Audiokit 修剪音频

#AudioKit 播放音序器音频 mp3

如何使用 AudioKit 的新 AKSequencer 播放 MIDI

如何使用 AudioKit 加载第三方音频单元

在 AudioKit 中过滤音频

AudioKit 停止并开始产生奇怪的声音