1
AVMIDIPlayerを使用して1つのノートメッセージのみでMusicSequenceを再生すると、時間のほとんどは、それが正常に動作しますが、時にはそれが何の音を持っていないし、次のように記録さ:AVMIDIPlayer DLSBankManager :: AddBank:銀行の読み込みに失敗しました
DLSBankManager::AddBank: Bank load failed
Error Domain=com.apple.coreaudio.avfaudio Code=-10871 "(null)"
をそれはiOS9でうまく動作しますが、私はiOS10上でそれをテストするとき、それは、この問題に実行されます。 sf2サウンドバンクファイルの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