首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >斯威夫特NSSound静静地玩吗?

斯威夫特NSSound静静地玩吗?
EN

Stack Overflow用户
提问于 2016-01-22 02:35:58
回答 2查看 581关注 0票数 1

我在iOS上做了一些Swift和相当多的Objective,但基本上没有真正的OS编程,所以我没有使用NSSound。我想在斯威夫特论坛上帮个人,然后.这不管用。我不知道为什么。

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

代码语言:javascript
复制
NSSound(named:"Hero")

在REPL / Playground或脚本打印中,我可以看到可选选项的内部有一个NSSound。但是当我给play()打电话的时候,我什么也没听到:

代码语言:javascript
复制
NSSound(named:"Hero")!.play()

为什么?

这是一段很小的代码,看起来很简单,但显然我遗漏了一些东西。这不是什么大问题,因为它不是我所需要的代码,但它困扰着我,因为它看起来很简单,但却不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-22 04:43:26

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

这里有一个快速而肮脏的方法,让操场无限期地保持活力,这样你就可以听到声音的播放。

代码语言:javascript
复制
import Cocoa
import XCPlayground

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

Stack Overflow用户

发布于 2016-01-22 02:50:26

似乎NSSound作为一个可可类,在我测试过的任何环境中都不能正常工作:

  • 游乐场
  • 斯威夫特脚本
  • Swift REPL

如果我把相同的小代码放在一个框架OS应用程序中,效果会很好。

感谢“狮子座”促使我真正尝试一下。我曾考虑过这种可能性,但直到他提出建议,我才试过。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34938041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档