如何检查NSSound是否在Swift中暂停

时间:2016-01-29 04:23:34

标签: swift nssound

我可以用NSSound快速播放声音:

var path ="/path/to/file.mp3"
mysound = NSSound(contentsOfFile: path, byReference: false)

mysound!.play() // works!

if (mysound!playing)
{
    mysound!.pause() //works, sort of
}

mysound!playing // is still true.

如何检查它是否暂停?

文档显示,如果播放已暂停,则pause()应该返回false,但这似乎不是这种情况,或者我做错了什么

我希望能够做到这一点:

var path ="/path/to/file.mp3"
mysound = NSSound(contentsOfFile: path, byReference: false)

if (mysound!playing)
{
    var state = mysound!.pause() 
    if(state == false) 
    {
         mysound!.resume() //never gets executed - why?
    }

} else {
   mysound!.play() 
}

我可以用一些帮助搞清楚这一点!谢谢!

1 个答案:

答案 0 :(得分:0)

如果您调用pause()并且返回true,则只会暂停声音。文档没有资格,但是暂停的NSSound在技术上仍然可以在播放时返回。如果playing被认为是"未停止"

,这将是有意义的

因为你知道你是否已经调用了pause(),你可以只存储另一个Bool isPaused,并使用它。

在第二个示例中,您没有调用play(),因此playing将始终返回false。