[Video Summary] Ch. 1.13 Playing Sound in SwiftUI with AVAudioPlayer (2025)
Mô tả nhanh
Video này trình bày cách thêm âm thanh vào ứng dụng iOS/macOS sử dụng SwiftUI với AVAudioPlayer. Video cũng đề cập đến việc import các module, làm việc với file âm thanh, xử lý lỗi cơ bản với guard let và do-try-catch, cũng như các best practice trong lập trình Swift.
Video
Mô tả chi tiết
Video này hướng dẫn cách thêm âm thanh vào ứng dụng iOS/macOS bằng SwiftUI và AVAudioPlayer.
Các bước thực hiện chính:
-
Chuẩn bị:
- Tải xuống các file âm thanh cần thiết từ link được cung cấp (bit.ly/pro-g-swiftui-files).
- File âm thanh có định dạng .mp3, .wav.
- Đảm bảo tên các file âm thanh là
sound0.mp3
,sound1.mp3
,sound2.mp3
,... - Có thể thu âm bằng QuickTime Player
-
Thêm file âm thanh vào Assets Catalog:
- Trong Xcode, chọn
Assets.xcassets
. - Tạo một folder mới tên là
sounds
và kéo các file âm thanh tải về vào folder này.
- Trong Xcode, chọn
-
Import Module:
- Thêm
import AVFAudio
vào đầu file code để có thể sử dụng các class liên quan đến audio (AVAudioPlayer).
- Thêm
-
Khai báo Audio Player:
- Tạo một biến state để lưu trữ audio player:
@State private var audioPlayer: AVAudioPlayer!
- Sử dụng dấu
!
để "implicitly unwrapping an optional" - nói rằng biến này sẽ được khởi tạo trước khi sử dụng.
- Tạo một biến state để lưu trữ audio player:
-
Đọc File Âm Thanh:
- Trong closure của button action, sử dụng
guard let
để đảm bảo file âm thanh có thể đọc được từ asset catalog.- Tạo một constant
soundName
để lưu trữ tên file âm thanh. - Sử dụng
NSDataAsset(name: soundName)
để lấy data từ file trong asset catalog. - Nếu không thể đọc file, in ra lỗi và
return
để kết thúc closure.
- Tạo một constant
- Trong closure của button action, sử dụng
-
Khởi Tạo và Phát Âm Thanh:
- Sử dụng
do-try-catch
để xử lý lỗi khi tạoAVAudioPlayer
. - Trong block
do
, khởi tạoaudioPlayer
bằngAVAudioPlayer(data: soundFile.data)
. - Nếu thành công, gọi
audioPlayer.play()
để phát âm thanh. - Trong block
catch
, in ra lỗi nếu quá trình khởi tạoAVAudioPlayer
thất bại.
- Sử dụng
-
Tạo Âm Thanh Ngẫu Nhiên:
- Tạo một biến state
lastSoundNumber
kiểu Int để theo dõi âm thanh vừa phát, khởi tạo với giá trị -1. - Tạo một constant
numberOfSounds
kiểu Int để lưu số lượng âm thanh (ví dụ: 6). - Trong closure của button action, tạo một
repeat-while
loop để tạo một số ngẫu nhiên, không giống với số đã phát trước đó. - Tạo biến
soundName
để gán tên file âm thanh có dạng "sound" + số ngẫu nhiên. - Thay thế giá trị
sound0
ban đầu bằng biếnsoundName
vừa khởi tạo
- Tạo một biến state
-
Best Practice:
- Sử dụng constant cho các giá trị lặp lại, tránh "magic number/string".
- Thêm emoji vào message in lỗi để dễ phân biệt trong console.
Chúc bạn thành công với việc phát âm thanh trong ứng dụng của mình!