[iOS] App Development

[iOS/Swift] Musical Instrument

ddgoori 2020. 4. 26. 16:45

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