如何在 UISlider 中实现 sender.selected if 语句?
How to implement sender.selected if statement into UISlider?
我正在尝试创建一个滑块,它根据滑块的值更改音频。因此,例如,如果滑块值为 0,则不会播放音频。如果值为 1,则 'song a' 播放,如果值为 2,则 'song 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 问题:
阿米特 - 我已将滑块的最大值更改为 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()
}
}
你滑块的 value
属性 as sender.value
as typecast it to Int and change the audio according to your need.
您需要在使用前设置滑块的 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.Set 滑块的最大值作为捆绑包中存在的音频文件数。
2.Create 包含所有音频的文件名或资源路径的数组。
喜欢
slider.maxValue = 5;
let audioPaths = ["1.mp3", "2.mp3", "3.mp3", "4.mp3", "5.mp3"];
@IBAction func audioSlider(sender: UISlider)
{
var index = Int(sender.value);
let audioPath = audioPaths[index];
do
{
audioSoundPlayer = try AVAudioPlayer (contentsOfURL: NSURL (fileURLWithPath: audioLocation!))
catch
{
print(error)
}
}
}
我正在尝试创建一个滑块,它根据滑块的值更改音频。因此,例如,如果滑块值为 0,则不会播放音频。如果值为 1,则 'song a' 播放,如果值为 2,则 'song 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 问题:
阿米特 - 我已将滑块的最大值更改为 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()
}
}
你滑块的 value
属性 as sender.value
as typecast it to Int and change the audio according to your need.
您需要在使用前设置滑块的 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.Set 滑块的最大值作为捆绑包中存在的音频文件数。
2.Create 包含所有音频的文件名或资源路径的数组。 喜欢
slider.maxValue = 5;
let audioPaths = ["1.mp3", "2.mp3", "3.mp3", "4.mp3", "5.mp3"];
@IBAction func audioSlider(sender: UISlider)
{
var index = Int(sender.value);
let audioPath = audioPaths[index];
do
{
audioSoundPlayer = try AVAudioPlayer (contentsOfURL: NSURL (fileURLWithPath: audioLocation!))
catch
{
print(error)
}
}
}