Swift NSSound 静音播放?

标签 swift cocoa nssound

我在 iOS 上做过一些 Swift 和相当多的 Objective-C,但基本上没有真正的 OS X 编程,所以我没有使用过 NSSound。我试图在 Swift 论坛上帮助某人,但......它不起作用。我不确定为什么。

在 playground、Swift REPL 甚至脚本 (#!/usr/bin/env swift) 中,我可以成功实例化一个 NSSound:

NSSound(named:"Hero")

在 REPL/Playground 或从脚本中打印,我可以看到可选的里面有一个 NSSound。但是当我调用 play() 时,我听不到任何声音:

NSSound(named:"Hero")!.play()

为什么?

这是一小段代码,看起来很简单,但显然我遗漏了一些东西。这没什么大不了的,因为它不是我需要的代码,但它让我很烦恼,因为它看起来很简单,但它不起作用。

最佳答案

NSSound 异步播放它的声音。默认情况下,playground 在执行其代码后立即退出,因此进程在声音有机会播放之前终止。

这里有一种快速而肮脏的方法可以让 Playground 无限期地保持活跃,这样您就可以听到播放的声音。

import Cocoa
import XCPlayground

if let sound = NSSound(named:"Hero") {
    XCPlaygroundPage.currentPage.needsIndefiniteExecution = true
    sound.play()
}

关于Swift NSSound 静音播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34938041/

相关文章:

cocoa - 为什么我的内部成员变量的名称会破坏数据绑定(bind)?

iphone - Objective C - 在字符串的特定部分添加字符

objective-c - 如何为 iOS 中的按钮添加声音?

ios - 快速询问初始 View Controller 的音乐权限

iOS 检查 iCloud 存储中的零值

swift - 我如何快速使用 ccPhysicsCollisionBegin 来查找特定类型的对象与另一个对象的单个实例之间的碰撞?

objective-c - 为什么以完全相同的方式定义的两个自定义对象不相等?

ios - 有没有办法使用 google for mkmapview 获取方向(只是路线)?

objective-c - NSSound 无法正常工作

swift - 如何制作 NSSound 循环