我在iOS上做了一些Swift和相当多的Objective,但基本上没有真正的OS编程,所以我没有使用NSSound。我想在斯威夫特论坛上帮个人,然后.这不管用。我不知道为什么。
在操场、Swift甚至脚本(#!/usr/bin/env swift)中,我可以成功地实例化一个NSSound:
NSSound(named:"Hero")在REPL / Playground或脚本打印中,我可以看到可选选项的内部有一个NSSound。但是当我给play()打电话的时候,我什么也没听到:
NSSound(named:"Hero")!.play()为什么?
这是一段很小的代码,看起来很简单,但显然我遗漏了一些东西。这不是什么大问题,因为它不是我所需要的代码,但它困扰着我,因为它看起来很简单,但却不起作用。
发布于 2016-01-22 04:43:26
NSSound异步播放它的声音。默认情况下,操场在执行其代码后立即退出,因此在声音有机会播放之前进程就会终止。
这里有一个快速而肮脏的方法,让操场无限期地保持活力,这样你就可以听到声音的播放。
import Cocoa
import XCPlayground
if let sound = NSSound(named:"Hero") {
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true
sound.play()
}发布于 2016-01-22 02:50:26
似乎NSSound作为一个可可类,在我测试过的任何环境中都不能正常工作:
如果我把相同的小代码放在一个框架OS应用程序中,效果会很好。
感谢“狮子座”促使我真正尝试一下。我曾考虑过这种可能性,但直到他提出建议,我才试过。
https://stackoverflow.com/questions/34938041
复制相似问题