Swift/iOS: AVAudioPlayer 不播放 NSData 格式的声音

Swift/iOS: AVAudioPlayer does not play sound in NSData format

我正在尝试创建一个 AVAudioPlayer 来播放从 Parse 下载的 NSData。

我很确定声音(.wav 格式)已经上传到 Parse。我也确定可以从 Parse 下载 NSData 格式的声音。所以我正在使用从 Parse 下载的数据创建一个 AVAudioPlayer 对象:

if audioData != nil {
                    print("successful downloading audio!") //this prints out
                    let audioPlayer = try! AVAudioPlayer(data: audioData!, fileTypeHint: AVFileTypeWAVE)
                    audioPlayer.prepareToPlay()
                    audioPlayer.volume = 0.5
                    audioPlayer.play()
                }

正如您在上面看到的,audioPlayer 已创建,但它不播放声音。可能哪里错了?

这段代码在一个函数中吗?如果是这样,您在本地创建 audioPlayer 变量。这意味着 audioPlayer 被创建,开始播放然后被释放(在函数调用结束时),导致没有音频。您的 audioPlayer 对象需要是 class 属性 或在全局 space 内(例如单例),因此对象生命在函数结束后仍然存在。