正如标题所示,我试图弄清楚如何计算NSSound
循环的次数(或者更确切地说,在每个循环的开始和/或结束时运行函数) 。我查看了所有文档,但我找不到任何内容。任何帮助将不胜感激。
更新:我尝试使用func sound(sound: NSSound, didFinishPlaying aBool: Bool)
,但在循环完成后似乎没有触发。代码:
func sound(sound: NSSound, didFinishPlaying aBool: Bool) {
pbNowPlaying.doubleValue = sound.currentTime
if aBool == true {
self.btnPlay.title = NSLocalizedString("titlePlay", comment: "Play")
self.btnPlay.state = NSOffState
self.pbNowPlaying.doubleValue = 0
self.btnPlay.needsDisplay = true
}
else {
Swift.print("Sound Looping")
}
self.needsDisplay = true
}
答案 0 :(得分:1)
您是否尝试过didFinishPlaying功能?每次声音文件完成剪辑时都会调用它。
optional func sound(_ sound: NSSound, didFinishPlaying aBool: Bool)
创建一个每次调用函数时都会增加的变量怎么样?什么容易跟踪计数?这是你正在寻找的正确数量吗?
var count = 0
func sound(sound: NSSound, didFinishPlaying aBool: Bool) {
pbNowPlaying.doubleValue = sound.currentTime
if aBool == true {
self.btnPlay.title = NSLocalizedString("titlePlay", comment: "Play")
self.btnPlay.state = NSOffState
self.pbNowPlaying.doubleValue = 0
self.btnPlay.needsDisplay = true
//Start playing sound again after it has ended.
count + 1
}
else {
Swift.print("Sound Looping")
}
self.needsDisplay = true
}
答案 1 :(得分:0)
循环属性
一个布尔值,指示声音是否重新开始播放 到达其内容的末尾。
声明
SWIFT var循环:Bool
OBJECTIVE-C @property BOOL循环
讨论
当此属性的值为YES时,声音将重新开始播放 当它完成并且不发送声音时:didFinishPlaying:对它 委托到达其内容的末尾并重新开始播放。 此属性的默认值为NO。
我建议你将其设置为false并重新开始播放' manualy'当你收到didFinishPlaying
另一种选择是使用持续时间和 currentTime 并计算循环次数