Quelqu'un aurait-il un lien avec un didacticiel pour ajouter une barre de progression de la lecture à Avudioplayer? P>
J'ai beaucoup recherché sur ce site et sur Google en vain sans p>
3 Réponses :
Je l'ai compris et ce n'était pas trop mauvais.
Il suffit de la mettre à jour dans une minuterie p>
Ajoutez un observateur périodique de temps et mettez à jour le curseur - À Swift, ce sera comme ça -
func addPlayBackSlider() { playbackSlider = UISlider(frame:CGRect(x:10, y:300, width:300, height:20)) playbackSlider?.minimumValue = 0 let duration : CMTime = playerItem.asset.duration let seconds : Float64 = CMTimeGetSeconds(duration) playbackSlider?.maximumValue = Float(seconds) playbackSlider?.isContinuous = true //If you want to manually set progressBar playbackSlider?.addTarget(self, action: #selector(AddAudioController.playbackSliderValueChanged(_:)), for: .valueChanged) //Here is the Observer player!.addPeriodicTimeObserver(forInterval: CMTimeMakeWithSeconds(1, 1), queue: DispatchQueue.main) { (CMTime) -> Void in if self.player!.currentItem?.status == .readyToPlay { let time : Float64 = CMTimeGetSeconds(self.player!.currentTime()); self.playbackSlider!.value = Float ( time ); } } } //If you want to manually set progressBar func playbackSliderValueChanged(_ playbackSlider:UISlider) { let seconds : Int64 = Int64(playbackSlider.value) targetTime = CMTimeMake(seconds, 1) print(targetTime) player!.seek(to: targetTime) if player!.rate == 0 { player?.play() playButton!.setTitle("Pause", for: UIControlState.normal) } }
J'espère que cela t'aides :)
Ajout d'un observateur de temps périodique malheureusement fonctionne uniquement pour Avplayer, pas Avadiovlayer.
AvadioPlayer B> n'a pas AddperiDicTIMTimeObserver code>.
Le CADISPAYLINK CODE> classe, qui appelle automatiquement une méthode que vous définissez dès qu'un écran redessinement se produit
la minuterie code> ne propose pas de tirer précis et peut dériver plus tôt ou Plus tard que les mises à jour demandées, et ne contiennent pas non plus d'écrans redessinés et peut-être peut-être heureux de fumer 10ms après qu'un écran redessinait vient de se produire. p>
En effet, la minuterie est bonne, mais cette méthode est meilleure pour le suivi.