swift - 如何让函数在 Swift 中播放不同的声音
问题描述
我有 10 个不同的按钮,每个按钮都有一个与之关联的唯一标签。所有按钮都链接到同一个 IBAction。我具有根据与单击的特定按钮关联的标签播放不同声音的功能。
import AVFoundation
var myAudio: AVAudioPlayer!
let path = Bundle.main.path(forResource: "sound1", ofType: "wav")!
let url = URL(fileURLWithPath: path)
do {
let sound = try AVAudioPlayer(contentsOf: url)
myAudio = sound
sound.play()
} catch {
//
}
}
解决方案
喜欢
@objc func yourbtnActionName(_ sender : UIButton){
switch sender.tag {
case 1:
commonSoundCode(name: "sound1")
break
case 2:
commonSoundCode(name: "yoursecondSoundname")
break
default:
break
}
}
然后常用方法为
func commonSoundCode(name: String){
let path = Bundle.main.path(forResource: name, ofType: "wav")!
let url = URL(fileURLWithPath: path)
do {
let sound = try AVAudioPlayer(contentsOf: url)
myAudio = sound
sound.play()
} catch {
//
}
}
选项 2
如果您的声音文件是相同的序列,例如(sound1.wav,sound2.wav......,sound10.wav)然后调用
@objc func yourbtnActionName(_ sender : UIButton){
let path = Bundle.main.path(forResource: "sound\(sender.tag)", ofType: "wav")!
let url = URL(fileURLWithPath: path)
do {
let sound = try AVAudioPlayer(contentsOf: url)
myAudio = sound
sound.play()
} catch {
//
}
}
推荐阅读
- mysql - 如何将条件聚合 mysql 转换为 laravel 查询?
- python - maxpooling2d keras does not do pooling at all
- json - 根据搜索词返回公司列表
- java - How to add new imageView On button clicked
- c - non recursive cunstruction of perfect binary treee from its inorder traversal
- c# - Write event log on remote machine using specific credentials
- gitlab - How to use Gitlab IDE's client side evaluation to live preview my Harp site?
- python - 将 Google App Engine 与 flask 和 flask-restplus 一起使用时出现 404 错误
- reactjs - ReactJS same components
- ios - Custom Transparent NavigationBar with back button