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


我可以帮忙弄清楚这一点!谢谢!

最佳答案

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

由于您将知道是否调用了pause(),因此可以只存储另一个Bool isPaused并使用它。

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

09-06 23:29