2016-12-08 11 views
1

私は特に成功することなく私のアプリケーションに音楽を追加しようとしています。私はAVFoundationを使用しようとしていると私のコードは次のとおりです:AVFoundation - 音楽iOS

//MUSIC 

    var audioPlayer = AVAudioPlayer() 
    let audioPath = Bundle.main.path(forResource: "happyDays", ofType: "wav") 


    do { 

     try audioPlayer = AVAudioPlayer(contentsOf: URL(fileURLWithPath: audioPath!)) 

    } 
    catch { 
     // process error 

    } 

    audioPlayer.play() 

は、私はすべてのエラーが、私のアプリケーションが起動し、音楽なしの再生を得ることはありません。誰も助けることができますか?

+1

3あなたの 'AVAudioPlayer'がスコープ外に起こっていると、それはどんな音楽を再生することができます前に、割り当て解除されています。 'audioPlayer'をクラスインスタンス変数にして、その寿命を延ばす。 –

+0

あなたが正しいです!私はこれを逃したと信じられない:p –

答えて

1

迅速

import UIKit 
import AVFoundation 

class ViewController: UIViewController{ 

    let var avPlayer: AVAudioPlayer! 

    @IBAction func btnPlayPauseAudio(_ sender: UIButton){ 

     if self.avPlayer != nil{ 

      if let myAudioUrl = Bundle.main.url(forResource: "myAudioFile", withExtension: "mp3"){ 

       if self.avPlayer.isPlaying{ 

        self.avPlayer.pause() 
       } 
       else{ 

        self.avPlayer = try AVAudioPlayer(contentsOf: myAudioUrl) 

        self.avPlayer.prepareToPlay() 

        self.avPlayer.play() 
       } 
      } 
     } 
    } 
} 
関連する問題