반응형
How to Use "Ringtone"
이 글은 Asset에 음원 파일을 접근하여 재생하는 방법에 대해 알아봅니다.
1. Asset 추가
Project의 Target에서 Assets을 클릭하면 아래와 같이 Asset을 관리하는 화면이 나옵니다. 여기에서 원하는 mp3파일을 추가해 줍니다.
2. doRingtone
/**
* @description 벨소리 실행
*/
func playRingtone () {
let assetName = "time_alarm"
guard let audioData = NSDataAsset(name: assetName)?.data else {
fatalError("Unable to find asset \(assetName)")
}
do {
var player = try AVAudioPlayer(data: audioData)
player!.play()
} catch {
fatalError(error.localizedDescription)
}
}
AVAudioPlay를 이용하기 위해서는 AVFoundation을 import 해주어야 합니다.
assetName에 내 mp3파일 명(확장자 제외)을 입력해 주고 위와 같이 NSDataSet으로 불러온 후 AVAudioPlayer로 선언합니다.
이후 play()로 재생해 주면, 해당 mp3 파일이 재생되게 됩니다.
추가적으로 재생 중인지 여부는 player!.isPlaying
재생 중지는 player!.stop()
으로 제어 가능합니다.
때문에, player를 전역변수로 두고 필요시마다 재생 / 중지를 가능하게 됩니다.
@State private var player: AVAudioPlayer? // 벨소리 플레이어
/**
* @description 벨소리 재생
*/
func playRingtone () {
let assetName = "time_alarm"
guard let audioData = NSDataAsset(name: assetName)?.data else {
fatalError("Unable to find asset \(assetName)")
}
do {
var player = try AVAudioPlayer(data: audioData)
player!.play()
} catch {
fatalError(error.localizedDescription)
}
}
/**
* @description 벨소리 중지
*/
func stopRingtone () {
if(player!.isPlaying){
player!.stop()
}
}
반응형
'개발 창고 > iOS' 카테고리의 다른 글
[SwiftUI] How to Use Various Buttons (0) | 2023.11.29 |
---|---|
[SwiftUI] How to debug using console in xcode (0) | 2023.11.28 |
[SwiftUI] How to Fix a Theme with Dark or Light (0) | 2023.11.27 |
[SwiftUI] How to Make an Array of Strings a String (0) | 2023.11.26 |
[SwiftUI] AdMob 적용하기 (0) | 2023.11.24 |