【问题标题】:Counting number of times an NSSound loops (Swift)计算 NSSound 循环的次数(Swift)
【发布时间】:2015-11-04 21:56:02
【问题描述】:

正如标题所示,我试图弄清楚如何计算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

}

【问题讨论】:

    标签: swift audio nssound


    【解决方案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
    
    }
    

    【讨论】:

    • 我做了,但它似乎只在sound.stop()触发。
    • 完成。我似乎无法让aBool 返回false
    【解决方案2】:

    循环属性

    一个布尔值,指示声音在播放时是否重新开始播放 到达其内容的末尾。

    声明

    SWIFT var 循环:布尔

    OBJECTIVE-C @property BOOL 循环

    讨论

    当此属性的值为 YES 时,声音重新开始播放 当它完成并且不发送声音时:didFinishPlaying: 到它的 当它到达其内容的末尾并重新开始播放时委托。 此属性的默认值为 NO。

    我建议您将其设置为 false 并在收到 didFinishPlaying 时“手动”重新开始播放

    另一种选择是使用 durationcurrentTime 并计算循环次数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-09
      • 2016-03-23
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      • 2017-06-17
      • 2012-10-27
      • 2016-12-01
      相关资源
      最近更新 更多