2017-04-05 4 views
1

저는 Swift를 처음 사용합니다. 내 프로그램은 모든 버튼이 다른 사운드를 재생해야하는 피아노 키보드 여야합니다.잘못된 명령으로 오류가 발생했습니다.

// 
// ViewController.swift 
// FirstPianoApp 
// 
// Created by Alex on 28/03/2017. 
// Copyright © 2017 Alex. All rights reserved. 
// 

import UIKit 
import AVFoundation 

class ViewController: UIViewController { 

let pianoSoundC3 = Bundle.main.url(forResource: "DO1", withExtension: "mp3")! 
var audioPlayerC3 = AVAudioPlayer() 

let pianoSoundCS = Bundle.main.url(forResource: "DO#", withExtension: "mp3")! 
var audioPlayerCS = AVAudioPlayer() 

let pianoSoundD = Bundle.main.url(forResource: "RE", withExtension: "mp3")! 
var audioPlayerD = AVAudioPlayer() 

let pianoSoundDS = Bundle.main.url(forResource: "RE#", withExtension: "mp3")! 
var audioPlayerDS = AVAudioPlayer() 

let pianoSoundE = Bundle.main.url(forResource: "MI", withExtension: "mp3")! 
var audioPlayerE = AVAudioPlayer() 

let pianoSoundF = Bundle.main.url(forResource: "FA", withExtension: "mp3")! 
var audioPlayerF = AVAudioPlayer() 

let pianoSoundFS = Bundle.main.url(forResource: "FA#", withExtension: "mp3")! 
var audioPlayerFS = AVAudioPlayer() 

let pianoSoundG = Bundle.main.url(forResource: "SOL", withExtension: "mp3")! 
var audioPlayerG = AVAudioPlayer() 

let pianoSoundGS = Bundle.main.url(forResource: "SOL#", withExtension: "mp3")! 
var audioPlayerGS = AVAudioPlayer() 

let pianoSoundA = Bundle.main.url(forResource: "LA", withExtension: "mp3")! 
var audioPlayerA = AVAudioPlayer() 

let pianoSoundAS = Bundle.main.url(forResource: "LA#", withExtension: "mp3")! 
var audioPlayerAS = AVAudioPlayer() 

let pianoSoundB = Bundle.main.url(forResource: "SI", withExtension: "mp3")! 
var audioPlayerB = AVAudioPlayer() 

let pianoSoundC4 = Bundle.main.url(forResource: "DO2", withExtension: "mp3")! 
var audioPlayerC4 = AVAudioPlayer() 


@IBOutlet weak var lbl: UILabel! 


@IBAction func slider(_ sender: UISlider){ 
    lbl.text = String(Int(sender.value)) 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    do { 
    try audioPlayerC3 = AVAudioPlayer(contentsOf: pianoSoundC3 as URL) 
    audioPlayerC3.prepareToPlay() 

    try audioPlayerCS = AVAudioPlayer(contentsOf: pianoSoundCS as URL) 
    audioPlayerCS.prepareToPlay() 

    try audioPlayerD = AVAudioPlayer(contentsOf: pianoSoundD as URL) 
    audioPlayerD.prepareToPlay() 

    try audioPlayerDS = AVAudioPlayer(contentsOf: pianoSoundDS as URL) 
    audioPlayerDS.prepareToPlay() 

    try audioPlayerE = AVAudioPlayer(contentsOf: pianoSoundE as URL) 
    audioPlayerE.prepareToPlay() 

    try audioPlayerF = AVAudioPlayer(contentsOf: pianoSoundF as URL) 
    audioPlayerF.prepareToPlay() 

    try audioPlayerFS = AVAudioPlayer(contentsOf: pianoSoundFS as URL) 
    audioPlayerFS.prepareToPlay() 

    try audioPlayerG = AVAudioPlayer(contentsOf: pianoSoundG as URL) 
    audioPlayerG.prepareToPlay() 

    try audioPlayerGS = AVAudioPlayer(contentsOf: pianoSoundGS as URL) 
    audioPlayerGS.prepareToPlay() 

    try audioPlayerA = AVAudioPlayer(contentsOf: pianoSoundA as URL) 
    audioPlayerA.prepareToPlay() 

    try audioPlayerAS = AVAudioPlayer(contentsOf: pianoSoundAS as URL) 
    audioPlayerAS.prepareToPlay() 

    try audioPlayerB = AVAudioPlayer(contentsOf: pianoSoundB as URL) 
    audioPlayerB.prepareToPlay() 

    try audioPlayerC4 = AVAudioPlayer(contentsOf: pianoSoundC4 as URL) 
    audioPlayerC4.prepareToPlay() 
    } catch { 

    } 


} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

@IBAction func C3(_ sender: UIButton) { 
    audioPlayerC3.currentTime = 0 
    audioPlayerC3.play() 
} 

@IBAction func CS(_ sender: UIButton) { 
    audioPlayerCS.currentTime = 0 
    audioPlayerCS.play() 
} 

@IBAction func D(_ sender: UIButton) { 
    audioPlayerD.currentTime = 0 
    audioPlayerD.play() 
} 

@IBAction func DS(_ sender: UIButton) { 
    audioPlayerDS.currentTime = 0 
    audioPlayerDS.play() 
} 

@IBAction func E(_ sender: UIButton) { 
    audioPlayerE.currentTime = 0 
    audioPlayerE.play() 
} 

@IBAction func F(_ sender: UIButton) { 
    audioPlayerF.currentTime = 0 
    audioPlayerF.play() 
} 

@IBAction func FS(_ sender: UIButton) { 
    audioPlayerFS.currentTime = 0 
    audioPlayerFS.play() 
} 

@IBAction func G(_ sender: UIButton) { 
    audioPlayerG.currentTime = 0 
    audioPlayerG.play() 
} 

@IBAction func GS(_ sender: UIButton) { 
    audioPlayerGS.currentTime = 0 
    audioPlayerGS.play() 
} 

@IBAction func A(_ sender: UIButton) { 
    audioPlayerA.currentTime = 0 
    audioPlayerA.play() 
} 

@IBAction func AS(_ sender: UIButton) { 
    audioPlayerAS.currentTime = 0 
    audioPlayerAS.play() 
} 

@IBAction func B(_ sender: UIButton) { 
    audioPlayerB.currentTime = 0 
    audioPlayerB.play() 
} 

@IBAction func C4(_ sender: UIButton) { 
    audioPlayerC4.currentTime = 0 
    audioPlayerC4.play() 
} 

}

와 나는이 라인이 명령은 동화가

let pianoSoundC3 = Bundle.main.url(forResource: "DO1", withExtension: 
"mp3")! 

...........

<<<< exc_bad_instruction(code=exc_i386_invop subcode=0x0) 

에서이 오류가 소리가 "DO1"이고 버튼이 pianoSoundC3

답변

2

번들에 리소스 이름 DO1.mp3이 없을 가능성이 가장 높습니다.

프로젝트에서 이러한 리소스를 추가했는지 경로가 올바른지 확인하십시오.

+0

소리가있는 폴더가 있는데, 100 % – aie