ピアノアプリ(SwiftPiano)を作ろう!5. 全鍵盤分、4. 音が出るコードを書く、の作業を繰り返す


ピアノアプリ(SwiftPiano)を作ろう!4. 音が出るコードを書く(まずは、ドの音だけ)」の続き。今回で完成です!

※2014年10月6日追記
動画撮影しました。ブログだと説明しきれない所などあったので、ぜひご確認ください。
swiftpiano_movie

※2014年10月7日追記
短いコードで書くバージョンも載せました!
http://bick.xyz/swiftpiano_shortversion/

5. 全鍵盤分、4. 音が出るコードを書く、の作業を繰り返す

備考1

もっと簡単簡潔にコードを書く方法があるはずですが、私には分かりませんので、ただただ愚直に、同じ作業を繰り返しました。(お恥ずかしい、、、、)
だれか、分かる方いらっしゃいましたら、私に教えてください!

備考2

「#」(シャープ)の記号を使うとエラーがでてしまい、「S」(大文字のS)を使っている箇所があります。ご注意ください。

例)
var pianoSoundCS = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(“C#”, ofType: “m4a”)!)
var audioPlayerCS = AVAudioPlayer()

次は、「6. 後記」です。

なお、私の書いた全コードは以下のとおり。
ご参考まで。

import UIKit
import AVFoundation

class ViewController: UIViewController {

var pianoSoundC3 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("C3", ofType: "mp3")!)
var audioPlayerC3 = AVAudioPlayer()

var pianoSoundCS = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("C#", ofType: "mp3")!)
var audioPlayerCS = AVAudioPlayer()

var pianoSoundD = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("D", ofType: "mp3")!)
var audioPlayerD = AVAudioPlayer()

var pianoSoundDS = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("D#", ofType: "mp3")!)
var audioPlayerDS = AVAudioPlayer()

var pianoSoundE = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("E", ofType: "mp3")!)
var audioPlayerE = AVAudioPlayer()

var pianoSoundF = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("F", ofType: "mp3")!)
var audioPlayerF = AVAudioPlayer()

var pianoSoundFS = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("F#", ofType: "mp3")!)
var audioPlayerFS = AVAudioPlayer()

var pianoSoundG = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("G", ofType: "mp3")!)
var audioPlayerG = AVAudioPlayer()

var pianoSoundGS = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("G#", ofType: "mp3")!)
var audioPlayerGS = AVAudioPlayer()

var pianoSoundA = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("A", ofType: "mp3")!)
var audioPlayerA = AVAudioPlayer()

var pianoSoundAS = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("A#", ofType: "mp3")!)
var audioPlayerAS = AVAudioPlayer()

var pianoSoundB = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("B", ofType: "mp3")!)
var audioPlayerB = AVAudioPlayer()

var pianoSoundC4 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("C4", ofType: "mp3")!)
var audioPlayerC4 = AVAudioPlayer()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

audioPlayerC3 = AVAudioPlayer(contentsOfURL: pianoSoundC3, error: nil)
audioPlayerC3.prepareToPlay()

audioPlayerCS = AVAudioPlayer(contentsOfURL: pianoSoundCS, error: nil)
audioPlayerCS.prepareToPlay()

audioPlayerD = AVAudioPlayer(contentsOfURL: pianoSoundD, error: nil)
audioPlayerD.prepareToPlay()

audioPlayerDS = AVAudioPlayer(contentsOfURL: pianoSoundDS, error: nil)
audioPlayerDS.prepareToPlay()

audioPlayerE = AVAudioPlayer(contentsOfURL: pianoSoundE, error: nil)
audioPlayerE.prepareToPlay()

audioPlayerF = AVAudioPlayer(contentsOfURL: pianoSoundF, error: nil)
audioPlayerF.prepareToPlay()

audioPlayerFS = AVAudioPlayer(contentsOfURL: pianoSoundFS, error: nil)
audioPlayerFS.prepareToPlay()

audioPlayerG = AVAudioPlayer(contentsOfURL: pianoSoundG, error: nil)
audioPlayerG.prepareToPlay()

audioPlayerGS = AVAudioPlayer(contentsOfURL: pianoSoundGS, error: nil)
audioPlayerGS.prepareToPlay()

audioPlayerA = AVAudioPlayer(contentsOfURL: pianoSoundA, error: nil)
audioPlayerA.prepareToPlay()

audioPlayerAS = AVAudioPlayer(contentsOfURL: pianoSoundAS, error: nil)
audioPlayerAS.prepareToPlay()

audioPlayerB = AVAudioPlayer(contentsOfURL: pianoSoundB, error: nil)
audioPlayerB.prepareToPlay()

audioPlayerC4 = AVAudioPlayer(contentsOfURL: pianoSoundC4, error: nil)
audioPlayerC4.prepareToPlay()

}

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()
}

}


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です