所以我想要做的就是在按下按钮时快速创建和播放声音,我知道如何在 Objective-C 中进行,但有没有人知道如何在 Swift 中?
对于 Objective-C 会是这样的:
NSURL *soundURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"mysoundname" ofType:@"wav"]];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundURL, &mySound);
然后玩它我会做:
AudioServicesPlaySystemSound(Explosion);
有谁知道我怎么做到这一点?
23 回答
以下是我添加到 FlappySwift 中的一些代码:
这与其他一些答案类似,但也许更多“Swifty”:
请注意,这是重现问题中代码效果的一个简单示例。您需要确保
import AudioToolbox
,加上这种代码的一般模式是在应用启动时加载声音,将它们保存在某处的SystemSoundID
实例变量中,在整个应用中使用它们,然后在您启动时调用AudioServicesDisposeSystemSoundID
他们完成了他们。Handy Swift 扩展:
然后,从你的应用程序的任何地方(记得
import AudioToolbox
),你可以打电话玩“sound.mp3”
这会从名为
Cha-Ching.aiff
的文件中创建SystemSoundID
。使用 class&AudioToolbox:
用法:
这段代码适合我。使用 Try 和 Catch for AVAudioPlayer
“Morse.aiff”是 OSX 的系统声音,但如果您只是在 XCode 中单击“命名”,您将能够查看(在“快速帮助”窗格中)此功能搜索声音的位置。它可以位于“支持文件”文件夹中
根据新的 Swift 2.0 我们应该使用 try try catch。代码如下所示:
这与 Swift 4 一起使用:
让我们看看这个问题的更新方法:
Matt Gibson 的解决方案对我有用,这里是 swift 3 版本。
斯威夫特 4
要么
在
Xcode 9.2
工作Swift 代码示例:
你可以在 Swift 5.2 中试试这个:
swift 4 和 iOS 12
}
使用此功能在 Swift 中发出声音(您可以在此处使用此功能 sound.)
首先添加 SpriteKit 和 AVFoundation Framework。
这段代码适合我:
对于Swift 3:
Swift 3 就是我这样做的。
难道你不能只是
import AVFoundation
,选择音频播放器(var audioPlayer : AVAudioPlayer!
),然后播放声音? (let soundURL = Bundle.main.url(forResource: "sound", withExtension: "wav"
)