将UIBackgroundModes设置为OFF时如何结合AKMIDISampler和AKSequencer发出声音

时间:2019-02-21 07:52:07

标签: audiokit

前几天,我被要求苹果拒绝该申请。

表示内容如下。

准则2.5.4-性能-软件要求 您的应用在Info.plist的UIBackgroundModes键中声明了对音频的支持,但是当应用在后台运行时,我们无法播放任何可听内容。

后续步骤 音频键旨在供在后台运行时向用户提供可听内容的应用程序使用,例如音乐播放器或流音频应用程序。请修改您的应用,以便在应用处于后台时向用户提供可听的内容,或者从UIBackgroundModes键中删除“音频”设置。

我按照Apple代表的指示将其关闭。 1 结果,使用以下代码发出的声音是正弦波,并且AKMIDISampler采样的采样声音没有发出。

import Foundation
import AudioKit

class AudioKitTest {

  let acousitcGuitar = AKMIDISampler()

  var guitarMix :AKMixer?

  var sequencer :AKSequencer?


  func play() {

    let exs24BasePath = "Sounds/Sampler Instruments/"

    let path = exs24BasePath + "20190218_01_hb"
    do {
      try acousitcGuitar.loadEXS24(path)
    } catch {
      print("Could not load EXS24")
    }
    self.guitarMix = AKMixer(acousitcGuitar)

    AudioKit.output = self.guitarMix

    do {
      try AudioKit.start()
    } catch {
      print("AudioKit.start() Error")
    }
    self.sequencer = AKSequencer()

    _ = self.sequencer!.newTrack()!
    self.sequencer!.setTempo(120.0)

    _ = self.sequencer!.newTrack()!
    let tMelody :AKMusicTrack = sequencer!.tracks[1]

    self.sequencer!.setLength(AKDuration(beats: 4))

    tMelody.setMIDIOutput(acousitcGuitar.midiIn)

    tMelody.clear()

    self.sequencer!.setLength(AKDuration(beats: 4))

    tMelody.add(noteNumber: MIDINoteNumber(60),
               velocity: 100,
               position: AKDuration(beats: 1),
               duration: AKDuration(beats: 1))

    tMelody.add(noteNumber: MIDINoteNumber(62),
               velocity: 100,
               position: AKDuration(beats: 2),
               duration: AKDuration(beats: 1))

    tMelody.add(noteNumber: MIDINoteNumber(64),
                velocity: 100,
                position: AKDuration(beats: 3),
                duration: AKDuration(beats: 1))

    tMelody.setMIDIOutput(acousitcGuitar.midiIn)

    self.sequencer!.play()

  }
}

由于此应用程序不需要在后台播放,因此我们正在寻找一种在将UIBackgroundModes设置为OFF的同时结合AKMIDISampler和AKSequencer进行声音的方法。

请给我一个答案。

Audiokit的版本为4.6.1。

0 个答案:

没有答案