我正在尝试创建一个滑块,根据滑块的值更改音频。因此,例如,如果滑块值为0,则不播放音频。如果值为1,则歌曲为'播放,如果值为2,则歌曲b'戏剧等。
我正在使用AVFoundation并创建了我的声音播放器:
var soundPlayer:AVAudioPlayer = AVAudioPlayer()
我在滑块上添加了插座:
@IBOutlet weak var audioSlider: UISlider!
@IBOutlet weak var audioSliderPlay: UISlider!
定义了音频的文件位置:
let audioLocation = NSBundle.mainBundle().pathForResource("song a", ofType: ".mp3")
为我的播放器创建了一个do方法:
do {
audioSoundPlayer = try AVAudioPlayer (contentsOfURL: NSURL (fileURLWithPath: audioLocation!))
catch {
print(error)
}
创造了我的行动:
@IBAction func audioSlider(sender: UISlider) {
if (!sender.selected) {
audioSoundPlayer.play()
audioSoundPlayer.numberOfLoops = -1
}
现在 - 当选择任何值时,滑块当前会激活歌曲a。音频启动后,无法停止。我需要添加sender.value并创建定义值的变量,并选择我要添加的其他歌曲。
请帮帮忙?!
使用Amit问题编辑:
Amit - 我已将滑块的最大值更改为3,即3个音频。
在将以下内容添加到IBAction时,滑块只有在达到最大值时才播放一个音频:
@IBAction func audioSlider(sender: UISlider) {
let sliderValue = (sender.value)
if sliderValue == 1 {
soundPlayer1.play()
soundPlayer1.numberOfLoops = -1
}
else if sliderValue == 2 {
soundPlayer2.play()
soundPlayer2.numberOfLoops = -1
}
else if sliderValue == 3 {
soundPlayer3.play()
soundPlayer3.numberOfLoops = -1
}
else if sliderValue == 0 {
soundPlayer1.stop()
soundPlayer2.stop()
soundPlayer3.stop()
}
}
答案 0 :(得分:0)
将滑块的value
属性设置为sender.value
,将其类型转换为Int并根据需要更改音频。
在使用之前,您需要设置滑块的minimum
和maximum
值。
将默认值设置为0
,最小值设置为0
,最大值设置为您的需要或歌曲数量。
您可以使用“pattern-match”运算符〜=:
let sliderValue = Int(slider.value)
if 100 ... 199 ~= sliderValue {
print("play audio 1")
}
else if 200 ... 299 ~= sliderValue {
print("play audio 2")
}
答案 1 :(得分:0)
1.将Slider的最大值设置为捆绑包中存在的音频文件数。
2.创建一个包含所有音频的文件名或资源路径的数组。 像
.btn.btn-primary.close {
background: rgba(0, 0, 0, 0) linear-gradient(#007bcf, #0048cf) repeat scroll 0 0;
border: medium none;
border-radius: 5px;
color: #fff;
cursor: pointer;
font-size: 26px;
letter-spacing: 1px;
padding: 10px 30px;
}