前几天,我被要求苹果拒绝该申请。
表示内容如下。
准则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。