2017-04-01 7 views
1

ich den folgenden Codeausschnitt bin mit:loadAudioFiles wirft Fehler

import AVFoundation 


var ae:AVAudioEngine 
var sampler:AVAudioUnitSampler 
var mixer:AVAudioMixerNode 

var midiNoteNumberFor:Dictionary<String,UInt8> = [ 
    "BD":48, 
    "Snr":50, 
    "Hat":52, 
    "Hit":53, 
    "VI":68, 
    "V":67, 
    "i":60, 
    "III": 63 
] 
    let urls = Bundle.main.urls(forResourcesWithExtension: "wav", subdirectory: "wavs") 

    ae = AVAudioEngine() 
    mixer = ae.mainMixerNode 
    sampler = AVAudioUnitSampler() 

    ae.attach(sampler) 
    ae.connect(sampler, to: mixer, format: sampler.outputFormat(forBus: 0)) 

    do { 
     try sampler.loadAudioFiles(at: urls!) 

    } catch { 
     print(error) 
    } 


    do { 
     try ae.start() 

    } catch { 
     print("Error info: \(error)") 
    } 


func play(snd:String){ 
    sampler.startNote(midiNoteNumberFor[snd]!, withVelocity: 127,onChannel: 0) 

} 

Allerdings, wenn ich die Funktion play(snd: "BD") laufen, wirft es den folgenden Fehler:

Error Domain=com.apple.coreaudio.avfaudio Code=-10851 "(null)" UserInfo={failed call=error}

, die aus dem ersten Fang kommt Klausel.

Antwort

0

In Build-Einstellungen müssen Sie einen Dateiverweis zum Verzeichnis wavs hinzufügen.