【发布时间】:2017-01-24 23:33:53
【问题描述】:
我正在播放存储在 iOS 应用程序资产目录中的 mp3 文件,并且当我声明具有应用程序范围的播放器时,我正在声明我的 AVAudioPlayer。我的代码工作正常,但我想知道这是否是不好的做法,如果是,为什么。大多数播放音频的代码示例都将 AVPlayer 声明为可选,但不会在声明时创建播放器,如下所示:
var audioPlayer: AVAudioPlayer?
我在下面实现的 b/c 没有任何对选项或强制解包的引用(我自己只是在 Swift 中加速发展,但我将其用作我的学生的早期“兴奋”示例,所以他们可以在他们的第一个应用程序中播放媒体。希望将选项讨论推迟到以后)。
// 声明 AVAudioPlayer 并分配一个空播放器
var audioPlayer = AVAudioPlayer()
// 调用该函数播放名为“sound0”的资产文件中的mp3声音
func playSound() {
if let sound = NSDataAsset(name: "sound0") {
do {
try audioPlayer = AVAudioPlayer(data: sound.data)
audioPlayer.play()
} catch {
print("ERROR: Couldn't create the AVAudioPlayer")
}
} else {
print("ERROR: Couldn't load sound file from asset catalog. Verify file is a valid sound file and that the name is correct.")
}
}
// 谢谢!
【问题讨论】:
标签: swift avaudioplayer