REC
[Swift] Swift에서 사운드 파일(.mp3, .wav 등), 음악 파일 재생하는 방법 본문
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 파라미터에 적는 사운드 파일은

이렇게 프로젝트 폴더 안에 있어야 한다.
4. 본인이 사운드를 실행하고 싶은 조건 안에서 play() 함수를 실행한다.
soundPlayer?.play(); // 버튼 누를 때마다 사운드 재생.
난 버튼을 누를 때마다 썼기 때문에 주석이 이렇다.
우리 모두 구글링을 잘하고 영어를 잘해보도록 하자!
제 글이 도움이 되었기를 바라며...! 공감 한 번씩 눌러 주시면 감사하겠습니다!
읽어 주셔서 감사합니다 🫶🏻😊
'Swift' 카테고리의 다른 글
| [Swift] Swift navigation bar custom 하는 방법 (0) | 2022.04.20 |
|---|---|
| [Swift] Swift 스토리보드 없이 UIButton, UILabel 생성 (0) | 2022.04.15 |
| [Swift] #3. Swift 클래스(class), 구조체(struct), 열거형(enum) 개념 정리 (0) | 2022.04.09 |
| [Swift] #2. Swift 함수 관련 이것저것 정리 (0) | 2022.04.07 |
| [Swift] #1. Swift 기본 문법 정리 (0) | 2022.04.03 |