Когда я использую AVMIDIPlayer для воспроизведения MusicSequence с одним сообщением с записью. Большая часть времени она работает нормально, но иногда это не имеет никакого звука и вошли, как показано ниже:AVMIDIPlayer DLSBankManager :: AddBank: Ошибка загрузки банка
DLSBankManager::AddBank: Bank load failed
Error Domain=com.apple.coreaudio.avfaudio Code=-10871 "(null)"
Он хорошо работает на iOS9, но когда я проверить его на iOS10 он работает в этот вопрос. Я уверен, что файл sf2 sound bank file url установлен правильно. я вставляю код, как показано ниже:
func playAVMIDIPlayerPreview(_ musicSequence:MusicSequence) {
guard let bankURL = Bundle.main.url(forResource: "FluidR3 GM2-2", withExtension: "sf2") else {
fatalError("soundbank file not found.")
}
var status = OSStatus(noErr)
var data:Unmanaged<CFData>?
status = MusicSequenceFileCreateData (musicSequence,
MusicSequenceFileTypeID.midiType,
MusicSequenceFileFlags.eraseFile,
480, &data)
if status != OSStatus(noErr) {
print("bad status \(status)")
}
if let md = data {
let midiData = md.takeUnretainedValue() as Data
do {
try self.midiPlayerPreview = AVMIDIPlayer(data: midiData, soundBankURL: bankURL)
} catch let error as NSError {
print("Error \(error)")
}
data?.release()
self.midiPlayerPreview?.play({() -> Void in
self.midiPlayerPreview = nil
self.musicSequencePreview = nil
})
}
}
Ошибка происходит на этой линии:
try self.midiPlayerPreview = AVMIDIPlayer(data: midiData, soundBankURL: bankURL)
Большое спасибо за ваш ответ. Но может ли я указать, где установить «errno» в моем коде? – Song
Только что отредактировал мой ответ;) –
Отлично, теперь он хорошо работает. Большое спасибо за вашу помощь – Song