티스토리 뷰
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 |
- Total
- Today
- Yesterday
- 그리디
- 코딩테스트
- 완전탐색
- D2
- 알고리즘
- Swift
- BFS
- Programmers
- 백트래킹
- dp
- Deque
- 다이나믹프로그래밍
- 구현
- SQL
- 큐
- Python
- 백준
- 이분탐색
- 힙
- MySQL
- D3
- 투포인터
- swea
- dfs
- 스택
- Baekjoon
- 코테준비
- ios
- Swift로백준풀기
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |