0

我可以使用 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() 
}

我可以使用一些帮助来解决这个问题!谢谢!

4

1 回答 1

0

只有当您调用 pause() 并且它返回 true 时,声音才会暂停。该文档不符合条件,但暂停的 NSSound 在技术上可能仍会返回 true 以进行播放。playing如果被认为是“未停止”,这将是有意义的。

因为你会知道你是否调用了 pause(),所以你可以存储另一个 BoolisPaused并使用它。

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

于 2016-01-29T04:48:42.793 回答