我想用 Swift 播放声音。
我的代码在 Swift 1.0 中工作,但现在它在 Swift 2 或更新版本中不再起作用了。
override func viewDidLoad() {
super.viewDidLoad()
let url:NSURL = NSBundle.mainBundle().URLForResource("soundName", withExtension: "mp3")!
do {
player = try AVAudioPlayer(contentsOfURL: url, fileTypeHint: nil)
} catch _{
return
}
bgMusic.numberOfLoops = 1
bgMusic.prepareToPlay()
if (Data.backgroundMenuPlayed == 0){
player.play()
Data.backgroundMenuPlayed = 1
}
}
13 回答
Swift 4(iOS 12 兼容)
最好您可能想要使用 AVFoundation.它提供了使用视听媒体的所有必需品.
斯威夫特 2.3
斯威夫特 3
Swift 4(iOS 12 兼容)
对于简短的声音文件,您可能希望使用 non-compressed 音频格式,例如
.wav
,因为它们具有最佳质量和较低的 CPU 影响。对于短声音文件,较高的 disk-space 消耗不应该是一个大问题。文件越长,您可能想要使用压缩格式,例如.mp3
等。检查CoreAudio
的兼容的音频格式。**Fun-fact:**有一些简洁的小库,使播放声音更容易。 :)
例如:SwiftySound
对于Swift 3:
本地资产的最佳做法是将其放在
assets.xcassets
中,然后像这样加载文件:iOS 12 - Xcode 10 beta 6 - Swift 4.2
仅使用 1 个 IBAction 并将所有按钮指向该 1 个动作。
如果代码没有生成任何错误,但您没有听到声音 - 将播放器创建为实例:
对我来说,当我做这个改变时,第一个解决方案起作用:)
斯威夫特 3
首先导入这些库
像这样设置委托
在按钮动作或某些动作上写下漂亮的代码:
100%在我的项目中工作并经过测试
使用 Swift 4 和 iOS 12 进行测试:
非常简单的代码快速
将您的音频文件添加到您的 Xcode 并给出给定的代码
适用于 swift 4 最新版本。 ButtonTag 将是您界面上按钮的标签。 Notes 位于与 Main.storyboard 平行的文件夹中的文件夹中。每个音符都被命名为 note1,note2 等.ButtonTag 从点击的按钮给出数字 1,2 等,作为参数传递
Swift 4,4.2 和 5
播放来自 URL 和项目的音频(本地文件)