2016-06-21 87 views
-2

我已經嘗試將操作鏈接到同一個按鈕,但這完全停止了按鈕。如果我創建一個單獨的按鈕,我可以使用相同的代碼工作:使用相同的按鈕來播放/暫停和AVFoundation中的音頻

@IBAction func Play(sender: AnyObject) { 
    SoundPlayer.play() 
} 

@IBAction func stop(sender: AnyObject) {   
    SoundPlayer.stop() 
} 

我還需要音頻才能循環。

使用Nirav代碼:

class ViewController: UIViewController { 

    var SoundPlayer:AVAudioPlayer = AVAudioPlayer() 

    @IBOutlet var btnPlay: UIButton! 
    @IBOutlet var btnStop: UIButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let FileLocation = NSBundle.mainBundle().pathForResource("Aspirin", ofType: ".mp3") 


     do { 
      SoundPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: FileLocation!)) 


      try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient) 
      try AVAudioSession.sharedInstance().setActive(true) 

     } 

     catch { 
      print(error) 
     } 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    @IBAction func btnTap(sender: UIButton) { 
     if (sender == self.btnPlay) { 
     } 
     else if (sender == self.btnStop) { 
     } 
    } 
} 

1 - 截圖故事板

回答

0

你可以做到這一點只需創建兩個按鈕的IBOutlet這樣

@IBOutlet var btnPlay: UIButton! 

現在結合這個動作既按鈕

@IBaction func btnTap(sender: UIButton) { 
    if (!sender.selected) { 
     SoundPlayer.play() 
    } 
    else { 
     SoundPlayer.stop() 
    } 
    sender.selected = !sender.selected 
} 

希望這會幫助你

+0

獲取NS無效的參數異常(請參閱原始帖子中的修訂代碼) –

+0

在哪裏得到它? –

+0

按下模擬器中的按鈕 –

相關問題