È possibile ottenere tempo di riproduzione e tempo di riproduzione totale in AVPlayer? Se sì, come posso fare questo?Come ottengo il tempo di riproduzione corrente e il tempo di riproduzione totale in AVPlayer?
risposta
è possibile accedere elemento attualmente in riproduzione utilizzando currentItem
proprietà:
AVPlayerItem *currentItem = yourAVPlayer.currentItem;
allora si può facilmente ottenere il tempo richiesto valori
CMTime duration = currentItem.duration; //total time
CMTime currentTime = currentItem.currentTime; //playing time
_audioPlayer = [self playerWithAudio:_audio];
_observer =
[_audioPlayer addPeriodicTimeObserverForInterval:CMTimeMake(1, 2)
queue:dispatch_get_main_queue()
usingBlock:^(CMTime time)
{
_progress = CMTimeGetSeconds(time);
}];
AVPlayerItem *currentItem = player.currentItem;
NSTimeInterval currentTime = CMTimeGetSeconds(currentItem.currentTime);
NSLog(@" Capturing Time :%f ",currentTime);
sto riproducendo canzoni dall'URL. ma a CMTime duration e CMTime currentTime sto ottenendo 0. qual è il problema qui per il valore 0? qualcuno conosce la soluzione? – Moxarth
Swift:
let currentItem = yourAVPlayer.currentItem
let duration = currentItem.asset.duration
var currentTime = currentItem.asset.currentTime
ottenere CMTime da .currentItem.asset.duration richiede 3-4 secondi? Come risolvere questo problema? Ho ancora usato thread ma non risolto? –
Con Swift 2.0, utilizzare questo;
let currentPlayerItem = AVPlayer.currentItem
let duration = currentPlayerItem?.asset.duration
var currentTime = AVPlayer.currentTime()
Ho provato a utilizzare AVPlayer.currentTime(), ma non è fortunato, ottenendo un errore di accesso errato – KavyaKavita
ottenere CMTime da .currentItem.asset.duration richiede 3-4 secondi? Come risolvere questo problema? Ho ancora usato thread ma non risolto? –
Swift 3
let currentTime:Double = player.currentItem.currentTime().seconds
È possibile ottenere i secondi del tuo tempo corrente accedendo alla proprietà seconds
del currentTime()
. Ciò restituirà un Double
che rappresenta i secondi nel tempo. Quindi puoi usare questo valore per costruire un tempo leggibile da presentare al tuo utente.
In primo luogo, includere un metodo per restituire le variabili di tempo per H:mm:ss
che mostrerà all'utente:
func getHoursMinutesSecondsFrom(seconds: Double) -> (hours: Int, minutes: Int, seconds: Int) {
let secs = Int(seconds)
let hours = secs/3600
let minutes = (secs % 3600)/60
let seconds = (secs % 3600) % 60
return (hours, minutes, seconds)
}
successivo, un metodo che permette di convertire i valori recuperati in precedenza in una stringa leggibile:
func formatTimeFor(seconds: Double) -> String {
let result = getHoursMinutesSecondsFrom(seconds: seconds)
let hoursString = "\(result.hours)"
var minutesString = "\(result.minutes)"
if minutesString.characters.count == 1 {
minutesString = "0\(result.minutes)"
}
var secondsString = "\(result.seconds)"
if secondsString.characters.count == 1 {
secondsString = "0\(result.seconds)"
}
var time = "\(hoursString):"
if result.hours >= 1 {
time.append("\(minutesString):\(secondsString)")
}
else {
time = "\(minutesString):\(secondsString)"
}
return time
}
Ora, aggiornare l'interfaccia utente con i calcoli precedenti:
func updateTime() {
// Access current item
if let currentItem = player.currentItem {
// Get the current time in seconds
let playhead = currentItem.currentTime().seconds
let duration = currentItem.duration.seconds
// Format seconds for human readable string
playheadLabel.text = formatTimeFor(seconds: playhead)
durationLabel.text = formatTimeFor(seconds: duration)
}
}
- 1. come ottenere il tempo di riproduzione corrente in video.js
- 2. Riproduzione di AVPlayer/AVPlayer senza nuovo download
- 3. Riproduzione e registrazione audio allo stesso tempo
- 4. Regolazione del volume di una riproduzione di AVPlayer
- 5. Riproduzione audio dal microfono in tempo reale
- 6. AVPlayer, notifica per stato di riproduzione/pausa?
- 7. Disattiva la riproduzione audio di AVPlayer?
- 8. Come accelerare la riproduzione di musica in tempo reale su Android senza modificare il tono?
- 9. Ripristina riproduzione video AVPlayer dopo l'attivazione dell'app
- 10. errore AVPlayer durante la riproduzione su TVOS
- 11. Ottieni l'ora corrente della riproduzione di video in Ios di AVPlayer
- 12. Avanzamento dello streaming di AVPlayer
- 13. muting una riproduzione di video AVPlayer Http Live Streaming
- 14. Come posso scoprire il segmento TS corrente durante una riproduzione HLS (m3u8) in iOS?
- 15. Base AV: differenza tra la versione corrente pronta per la riproduzione e la proprietà [AVPlayer readyForDisplay]?
- 16. Come misurare il tempo totale trascorso in una funzione?
- 17. Registrazione audio e riproduzione di iPod contemporaneamente?
- 18. Riproduzione senza pause con AVQueuePlayer/AVPlayer - è possibile?
- 19. Come aggiungere iPod EQ durante la riproduzione audio con AVPlayer?
- 20. Riproduzione di uno stream ogg in iOS
- 21. Riproduzione di video YouTube con inizio e fine tempo con YouTube API
- 22. Tempo totale SUM in SQL Server
- 23. Come impostare il tempo di default per l'ingresso tempo simple_form
- 24. Riproduzione continua di musica con il nome
- 25. Riproduzione video inversa in iOS
- 26. Quale unità di tempo restituisce il tempo?
- 27. Riproduzione video GPUImmagine e swift
- 28. Come ottenere il tempo corrente in millisecondi in C Programming
- 29. Come posso cambiare la velocità di riproduzione del video di YouTube in riproduzione, con Javascript e il player HTML5?
- 30. Riproduzione ordinata di array casuali
la re è anche il metodo conveniente CMTimeGetSeconds per ottenere NSTimeInterval: NSTimeInterval duration = CMTimeGetSeconds (currentItem.duration); NSTimeInterval currentTime = CMTimeGetSeconds (currentItem.currentTime); – slamor
ho dovuto impostare la chiamata nella coda principale affinché restituisca il valore corretto (o qualsiasi coda in cui il tuo avplayer è in esecuzione). –
come dare questa propensione a LABEL? –