AVAudioPlayer not playing audio in Swift

后端 未结 10 1444
抹茶落季
抹茶落季 2020-12-16 03:10

I have this code in a very simple, single view Swift application in my ViewController:

var audioPlayer = AVAudioPlayer()

@IBAction func playMyF         


        
10条回答
  •  既然无缘
    2020-12-16 03:37

    Based on @matt answer but little bit detailed 'cause original answer did not completely satisfied me.

    import AVFoundation
    
    class YourController: UIViewController {
    
      private var player : AVAudioPlayer?
    
      override func viewDidLoad() {
         super.viewDidLoad()
    
         prepareAudioPlayer()
      }
    
      @IBAction func playAudio() {
    
          player?.play()
      }
    }
    
    extension YourController: AVAudioPlayerDelegate {}
    
    private extension YourController {
    
        func prepareAudioPlayer() {
    
            guard let path = Bundle.main.path(forResource: "you-audio", ofType:"mp3") else {
                return
            }
            let fileURL = URL(fileURLWithPath: path)
            do {
                player = try AVAudioPlayer(contentsOf: fileURL)
            } catch let ex {
                print(ex.localizedDescription)
            }
            player?.prepareToPlay()
            player?.delegate = self
        }
    }
    

提交回复
热议问题