2016-04-24 35 views
-4

我想在聲音播放完成後激活一個功能。我假設需要包含NSTimer,但我不確定如何實現它。如果你能給我一些有用的代碼,這會很有幫助。如何在給定時間後激活某個功能?

+2

您是否嘗試過谷歌上搜索您的問題?例如'swift nstimer'給出了很多結果。 – luk2302

回答

5

您應該發佈您嘗試過的代碼,然後有人可以幫助您使代碼正常工作。在這種情況下,你不需要計時器來處理你正在做的事情。對玩家的AVAudioPlayerDelegate協議是專爲你正在嘗試做的事:

import UIKit 
import AVFoundation 

class ViewController: UIViewController, AVAudioPlayerDelegate { 

    var audioPlayer:AVAudioPlayer? 

    func playSound(fileName:NSString) 
    { 
     let path = NSBundle.mainBundle().pathForResource(fileName, ofType:"wav") 
     let url = NSURL.fileURLWithPath(path!) 

     do { 
      try audioPlayer = AVAudioPlayer(contentsOfURL: url) 
      audioPlayer?.delegate = self 
      audioPlayer?.play() 
     } catch { 
      print("Player not available") 
     } 
    } 

    //MARK : AVAudioPlayerDelegate 
    func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool) { 
     print("finished playing, do something else here") 
    } 
} 
+1

這就是我會推薦的。 'AVAudioPlayerDelegate'' audioPlayerDidFinishPlaying(_,successful:)'方法是當聲音播放完成後應該如何調用代碼。 –