티스토리 뷰

SMALL

iOS 공부를 하면서 느끼는 건데

코딩하다가 막혔을 때 구글링을 한글로 했을 때보다 영어로 했을 때 훨씬 더 내 상황에 적합한 자료가 나오는 것 같다.

 

예를 들어서 table view가 안 보이면 'Swift table view not showing' 이런 식으로 검색하면 나랑 비슷한 상황인 사람이 있더라.

영어... 영어를 잘하는 게 정말 좋은 것 같다... 자료가 다 영어다.

 

아무튼 Swift에서 사운드 파일을 재생하려면 어떻게 해야 할까?

 

위의 말을 괜히 한 게 아니다.

구글에 'Swift play sound'를 검색해 보면,

https://www.hackingwithswift.com/example-code/media/how-to-play-sounds-using-avaudioplayer

 

How to play sounds using AVAudioPlayer - free Swift 5.4 example code and tips

Was this page useful? Let us know! 1 2 3 4 5

www.hackingwithswift.com

위의 사이트를 금방 발견할 수 있는데, 코드를 정리해 보겠다.

 

1. AVFoundation 프레임워크를 import 한다.

import AVFoundation

 

2. AVAudioPlayer 타입의 변수를 선언한다. -> 오디오를 재생할 프로퍼티를 정의한 것.

var soundPlayer: AVAudioPlayer?

 

3. prepareSound() 함수를 만들고 viewDidLoad() 안에서 이 함수를 실행한다.

 

// 사운드 play를 준비하는 함수. -> 사운드 파일의 경로를 가져와서 플레이어를 만든다.
func prepareSound() {
    let path = Bundle.main.path(forResource: "switch.wav", ofType: nil)!
    let url = URL(fileURLWithPath: path)

    do {
        soundPlayer = try AVAudioPlayer(contentsOf: url)
        soundPlayer?.prepareToPlay()    // play 전에 미리 메모리에 로드해두고 준비하는 것.
    } catch {
        // couldn't load file :(
    }
}

 

- Bundle.main.path(forResource:~ 를 통해 사운드 파일의 경로를 가져온다.

- 가져온 경로를 URL 생성자에 넣어서 url를 생성.

- 2번에서 선언한 변수 soundPlayer에 이 경로의 플레이어를 할당. -> 재생할 플레이어 완성.

- prepareToPlay() 함수 실행. -> play 전에 미리 메모리에 로드해 두고 준비하는 것. => 이게 함수 실행될 때마다 play()하는 구조보다 더 좋다고 함.

 

** 참고로 forResource 파라미터에 적는 사운드 파일은

switch.wav

이렇게 프로젝트 폴더 안에 있어야 한다.

 

4. 본인이 사운드를 실행하고 싶은 조건 안에서 play() 함수를 실행한다.

soundPlayer?.play();    // 버튼 누를 때마다 사운드 재생.

 

난 버튼을 누를 때마다 썼기 때문에 주석이 이렇다.

 

우리 모두 구글링을 잘하고 영어를 잘해보도록 하자!


제 글이 도움이 되었기를 바라며...! 공감 한 번씩 눌러 주시면 감사하겠습니다!

읽어 주셔서 감사합니다 🫶🏻😊

LIST
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함