Make XyloPhone App
- How to play sound using AVFoundation and AVAudioPlayer
- Understand Apple documentation and how to use StackOverflow
- Functions and methods in Swift
- Data types
- Swift loops
- Variable scope
- The ViewController lifecycle
- Error handling in Swift
- Code refactoring
- Basic debugging
import UIKit
import AVFoundation
class ViewController: UIViewController {
var player: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func keyPressed(_ sender: UIButton) {
playSound()
}
func playSound() {
let url = Bundle.main.url(forResource: "C", withExtension: "wav")
player = try! AVAudioPlayer(contentsOf: url!)
player.play()
}
}
- swift 4 이상 버전 참고하기
- Bundle?
앱을 build할때 xCode는 bundle로 묶습니다. bundle이란 앱의 정보와 자료를 하나의 공간에 그룹화해서 저장한 하나의 디렉토리 입니다.
앱 번들은 app icon, 이미지 파일, 지역화된 컨텐츠들과 같은 자원과 앱 실행파일을 담고 있습니다.
- Option 누르고 swift doc 보기
//
// ViewController.swift
// Xylophone
//
import UIKit
import AVFoundation
class ViewController: UIViewController {
var player: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func keyPressed(_ sender: UIButton) {
playSound(pressedName: sender.currentTitle!)
sender.alpha = 0.5
DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
sender.alpha = 1.0
}
}
func playSound(pressedName: String) {
let url = Bundle.main.url(forResource: pressedName, withExtension: "wav")
player = try! AVAudioPlayer(contentsOf: url!)
player.play()
}
}
'[iOS] App Development' 카테고리의 다른 글
[iOS] AVAudioPlayer / 오디오&녹음 기능 구현 (0) | 2020.07.16 |
---|---|
[iOS] OOP in Swift (0) | 2020.07.16 |
[iOS] 스터디 참고 사이트 (0) | 2020.07.15 |
cocoapods 설치 / Linux vi 에디터 명령어 (0) | 2020.07.15 |
[Swift] Optional (0) | 2020.05.14 |