AVAudio播放器不播放声音?



我在一个单独的类中有一个AVAudioPlayer,我将其加载到ViewController中。这是代码:

import Foundation
import AVFoundation
class SoundController {
    var audioPlayer: AVAudioPlayer!
    init() {
    }
    func playAudio() {
        let path = NSBundle.mainBundle().pathForResource("ring-ring", ofType: "aiff", inDirectory: "Media" )!
        let url = NSURL(fileURLWithPath: path)
        do {
            print("Let's play the sound")
            let sound = try AVAudioPlayer(contentsOfURL: url)
            self.audioPlayer = sound
            sound.play()
        } catch {
            print("Error playing sound file")
        }
    }
}

这是ViewController

override func viewDidLoad() {
        super.viewDidLoad()
        let sound = SoundController()
        sound.playAudio()
    }

所有的东西都编译了,我得到控制台输出"让我们播放声音",但无论我在哪个设备上测试,声音都不会播放。有什么建议吗?

您分配audioPlayer的方式不对,我认为这应该起作用。

import Foundation
import AVFoundation
var audioPlayer: AVAudioPlayer!
class SoundController {
    class func playAudio() {
        let path = NSBundle.mainBundle().pathForResource("ring-ring", ofType: "aiff", inDirectory: "Media" )!
        let url = NSURL(fileURLWithPath: path)
        do {
            print("Let's play the sound")
            audioPlayer = try AVAudioPlayer(contentsOfURL: url)
            audioPlayer.prepareToPlay()
        } catch {
            print("Error playing sound file")
        }
    }
}
override func viewDidLoad() {
    super.viewDidLoad()
    SoundController.playAudio()
    audioPlayer.play()
}

最新更新