如何使函数在Swift中播放不同的声音
我有10个不同的按钮,每个按钮都有一个独特的标签。所有按钮都链接到同一iAction。我有一个功能,可以根据与点击的特定按钮相关联的标签播放不同的声音如何使函数在Swift中播放不同的声音,swift,avaudioplayer,Swift,Avaudioplayer,我有10个不同的按钮,每个按钮都有一个独特的标签。所有按钮都链接到同一iAction。我有一个功能,可以根据与点击的特定按钮相关联的标签播放不同的声音 import AVFoundation var myAudio: AVAudioPlayer! let path = Bundle.main.path(forResource: "sound1", ofType: "wav")! let url = URL(fileURLWithPath: path) do { let sound =
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 {
//
}
}
您只需根据
ui按钮的
标签
播放声音即可
@IBAction func playsound(_ sender: UIButton)
{
switch sender.tag
{
case 0:
//Sound for Button with tag=0
case 1:
//Sound for Button with tag=1
default:
//Default Sound
}
}
在上述代码中,根据您的ui按钮
标记
添加更多案例
请添加更多代码,使问题更加清晰。喜欢吗
@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),则调用like
您的问题/问题是什么?显示您的按钮动作代码当前所有按钮播放相同的声音。我希望按钮根据单击的按钮播放不同的声音。显示您尝试过的代码,给出答案很有用我的声音播放代码写在上面。它包含在IBAction中,用于所有十个按钮。我想根据发送者按钮的标记更改“sound1”。您应该避免使用
0
标记,因为这是所有视图的默认值。player.prepareToPlay()如果我将这行代码添加到播放器上方,它将如何影响我的代码。play()@UtkarshSharma-请参阅此以获取帮助,
@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 {
//
}
}