J'ai un problème avec la lecture de la file d'attente de la chanson locale (enregistrée sur l'appareil). J'utilise ce cocoapod - https://github.com/tumtumtum/StreamingKit. Mon premier élément dans la file d'attente commence à jouer une fois de plus après sa fin. Il a le statut stopReason AUCUNStreamingKit répète la chanson ios
func audioPlayer(_ audioPlayer: STKAudioPlayer, didFinishPlayingQueueItemId queueItemId: NSObject, with stopReason: STKAudioPlayerStopReason, andProgress progress: Double, andDuration duration: Double) {
if stopReason == .eof || stopReason == .pendingNext {
checkNextTrack()
}
if stopReason == .none {
print("NONE")
}
if stopReason == .error || stopReason == .userAction || stopReason == .disposed {
stop()
resetAudioPlayer()
}
}
Autres éléments a Statuts de .eof
ou .pendingNext
et ce comportement est correct. Que dois-je faire dans ce cas? Toutes les URL distantes sont correctement lues. Thnx!
MISE À JOUR: Queue création
internal func playWithQueue(queue: [Song], index: Int = 0) {
var audioListNew = [AudioItem]()
for (index, value) in queue.enumerated() {
let audioItem = AudioItem(audioItem: value, audioIndex: index)
audioListNew.append(audioItem)
}
guard index >= 0 && index < audioListNew.count else { return }
newQueue(queue: audioListNew, index: index)
}
func newQueue(queue: [AudioItem], index: Int = 0) {
self.queue = queue
audioPlayer.clearQueue()
if let currentSong = self.queue[index].audioItem {
play(file: currentSong)
for (songIndex, _) in queue.enumerated() {
audioPlayer.queue((queue[Int((index + songIndex) % queue.count)].audioItem?.songRealUrl)!)
}
}
currentIndex = index
}
Hey. Est-ce que votre premier objet est joué une fois de plus après qu'il soit terminé sans raison ou parce que vous avez fait la queue pour jouer après tout le reste? – tumtumtum
@tumtumtum Sans raison. Je peux vous donner une partie de mon code lorsque je crée une file d'attente. Peut-être que je fais quelque chose de mal –
@tumtumtum Mis à jour ma question –