2017-04-01 1 views
1
나는 다음과 같은 코드를 사용하고

그러나loadAudioFiles가 발생 오류

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) 

} 

을, 나는 기능 play(snd: "BD")를 실행하면 다음과 같은 오류가 발생합니다 :

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

최초의 캐치에서 오는 절.

답변

0

빌드 설정에서 파일 참조를 wavs 디렉토리에 추가해야합니다.