gpt4 book ai didi

Swift:使用 NSTimer 调用操作

转载 作者:行者123 更新时间:2023-11-30 14:13:24 27 4
gpt4 key购买 nike

我试图弄清楚如何在 AVAudioPlayer 时调用操作使用 NSTimer 命中特定秒.

代码:

var audioFile = try! AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("FileName", ofType: "mp3")!))

override func viewDidLoad() {
super.viewDidLoad()
NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("checkPlaybackTime:"), userInfo: nil, repeats: true)
}

func checkPlaybackTime(timer:NSTimer){
let seconds : NSTimeInterval = audioFile.currentTime
if (seconds == 20.0){
btnPausePlay.setTitle("Play", forState: UIControlState.Normal)
}
}

我想要调用的操作是将 btnPausePlay 按钮文本设置为“播放”,但它永远不会像我在 if 语句中调用的那样执行此操作。

编辑:现在可以了。我从 if (seconds == 20.0 更改为至if (seconds >= 20.0)

最佳答案

尽管此答案没有显式使用 NSTimer,但它确实利用 AVPlayer 类的方法 addPeriodicTimeObserverForInterval 来实现相同的目的:

初始化播放器后,执行以下操作:

let observerInterval = CMTimeMakeWithSeconds(0.5, 100) //this sets the interval at every half second
timeObserverToken = audioPlayer.addPeriodicTimeObserverForInterval(observerInterval, queue: nil, usingBlock: self.getPlaybackTimer)

函数getPlaybackTimer如下所示:

func getPlaybackTimer(time: CMTime){
let currentTime = audioPlayer.currentTime()
/* *** */
}

关于Swift:使用 NSTimer 调用操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31501393/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com