На днях меня попросили Apple отклонить заявку.
Содержание указания следующее.
Рекомендация 2.5.4 - Производительность - Требования к программному обеспечению Ваше приложение заявляет о поддержкедля аудио в ключе UIBackgroundModes в вашем Info.plist, но мы не смогли воспроизвести какой-либо слышимый контент, когда приложение работало в фоновом режиме.
Следующие шаги Звуковая клавиша предназначена для использования приложениями, которые обеспечивают слышимыйконтент для пользователя в фоновом режиме, такой как музыкальный проигрыватель или потоковые аудио-приложения.Пересмотрите свое приложение, чтобы предоставить пользователю слышимый контент, пока приложение находится в фоновом режиме, или удалите параметр «audio» из ключа 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()
}
}
Поскольку отсутствуетТребование играть в фоновом режиме в этом приложении, мы ищем способ звучания с комбинацией AKMIDISampler и AKSequencer при отключении UIBackgroundModes.
Пожалуйста, дайте мне ответ.
ВерсияАудиокит это 4.6.1.