Je travaille sur le développement d'une application qui lit la narration en lisant les fichiers son phrase par phrase les uns après les autres. Avec le code ci-dessous, il a joué comme prévu. Cependant, après avoir ajouté le bouton "Stop" pour arrêter ce qui est en train de jouer, j'ai trouvé que le bouton "Stop" n'arrêtait pas le son.AVAudioPlayer ne s'arrête pas en cours de lecture
J'ai testé le bouton "Stop" avant d'appuyer sur le bouton "Play", ce qui n'a pas fonctionné (le message a été imprimé). Cependant, après avoir appuyé sur "Play" et pendant la lecture de NarrationPlayer, le bouton "Stop" n'a pas fonctionné (aucun message n'a été imprimé).
Une idée de ce qui ne va pas?
import UIKit
import AVFoundation
class ViewController: UIViewController,AVAudioPlayerDelegate {
var NarrationPlayer:AVAudioPlayer = AVAudioPlayer()
var soundlist: [String] = []
var counter = 0
}
func playSound(_ soundfile: String) {
let NarPath = Bundle.main.path(forResource: soundfile, ofType:"mp3")!
let NarUrl = URL(fileURLWithPath: NarPath)
do {
NarrationPlayer = try AVAudioPlayer(contentsOf: NarUrl)
NarrationPlayer.delegate = self
} catch{
print(error)
}
NarrationPlayer.play()
}
@IBAction func play(_ sender: Any) {
soundlist.append("a")
soundlist.append("b")
soundlist.append("c")
playSound("first")
while counter < soundlist.count{
if NarrationPlayer.isPlaying == true{
}
else{
playSound(soundlist[counter])
counter += 1
}
}
}
@IBAction func StopPlay(_ sender: Any) {
print("stop button worked")
}
Je ne sais pas si c'est lié mais pourquoi y a-t-il une parenthèse de fermeture après le compteur de var – 3stud1ant3
@ 3stud1ant3 parce qu'il y a une parenthèse d'ouverture '{' pour sa classe respective –