J'essaye de créer un curseur qui change l'audio dépendant de la valeur du curseur. Ainsi, par exemple, si la valeur du curseur est 0, aucun son n'est lu. Si la valeur est 1, « chanson d'un » joue et si la valeur est 2, « chanson b » joue etc.Comment implémenter sender.selected if instruction dans UISlider?
J'utilise AVFoundation et ai créé mon soundplayer:
var soundPlayer:AVAudioPlayer = AVAudioPlayer()
J'ai ajouté points à mon curseur:
@IBOutlet weak var audioSlider: UISlider!
@IBOutlet weak var audioSliderPlay: UISlider!
Defined l'emplacement du fichier de mon audio:
let audioLocation = NSBundle.mainBundle().pathForResource("song a", ofType: ".mp3")
a créé une méthode de faire pour mon pl ayer:
do {
audioSoundPlayer = try AVAudioPlayer (contentsOfURL: NSURL (fileURLWithPath: audioLocation!))
catch {
print(error)
}
Et créé mon action:
@IBAction func audioSlider(sender: UISlider) {
if (!sender.selected) {
audioSoundPlayer.play()
audioSoundPlayer.numberOfLoops = -1
}
maintenant - le curseur active actuellement une chanson quand une valeur est choisie. Une fois que l'audio a commencé, il ne peut pas être arrêté. Je dois ajouter un sender.value et créer des variables qui définissent la valeur et choisir d'autres chansons que je vais ajouter.
Aidez s'il vous plaît ?!
Modifier avec le numéro Amit:
Amit - J'ai changé la valeur maximale du curseur à 3 pour 3 audios.
En ajoutant ce qui suit à la IBAction, le curseur joue qu'une seule piste audio une fois qu'il atteint la valeur maximale:
@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()
}
}
si vous voulez la valeur du curseur juste utiliser « Apprécions = Int (sender.value) » – lzl
Bien sûr merci! –
sliderValue que vous obtenez est une valeur Float qui ne correspondra pas exactement à 1.0 ou 2.0 –