2011-08-21 3 views
7

Sto provando a impostare il Valore di un UISlider sull'ora corrente di AVPlayer.Impostare UISlider.value su AVPlayer.currentTime

Sto cercando di utilizzare questo codice audioPlayer.currentTime = nowPlayingSlider.value;

sto ottenendo questo errore:
Setter method is needed to assign to object using property assignment syntax
Come faccio ad avere questo lavoro.

risposta

9

Ecco come ho gestito questo:

-(IBAction) timeScrubberChange:(id) sender{ 
CMTime t = CMTimeMake(self.nowPlayingTimeScrubber.value, 1); 
self.nowPlayingCurrentTime.text = [self formatTimeCodeAsString: t.value]; 
self.nowPlayingDuration.text = [self formatTimeCodeAsString:(self.actualDuration - t.value)]; 
[self.avPlayer seekToTime:t];         
} 
+2

Ho fatto qualcosa di simile a questo, ma mi sono imbattuto in problemi se un utente scrobbled con il cursore troppo veloce. In sostanza, il giocatore carica, il scrobble prima di giocare, quindi colpisce il gioco. È come se l'avplayer ignora la ricerca e imposta il tempo corrente su 0. – BBonifield

1

Forse ce l'hai il contrario?

Per impostare il dispositivo di scorrimento verso il luogo corrente nel suono che dovrebbe essere:

[nowPlayingSlider setValue:[audioPlayer currentTime]]; 

Per saltare in audio in base ad un cambiamento del cursore:

[audioPlayer setCurrentTime:nowPlayingSlider.value]; 

fatemi sapere se Funziona.

+0

Sfortunatamente setCurrentTime: inesistente –

+0

Ma il primo metodo funziona –

+0

Potresti avere ragione. Ma funziona con AVAudioPlayer. (Vedi [questo] (http://stackoverflow.com/questions/882753/avaudioplayer-currenttime-problem) domanda.) – Mundi

3

Sam, controllare questo due metodi:

-currentTime e -seekToTime:

Here

essi rientrano nella classe AVPlayer