2009-07-21 16 views
12

Tengo un problema al utilizar AVAudioPlayer donde quiero restablecer un reproductor si se está reproduciendo actualmente y que vuelva a reproducirlo.AVAudioPlayer restablecer el sonido que se está reproduciendo y reproducirlo desde el comienzo

trato lo siguiente sin suerte:

el sonido se reproduce a continuación, una vez, pero la segunda vez que seleccione el botón que se detenga el sonido, la tercera vez que se inicia el sonido de nuevo.

//Stop the player and restart it 
if (player.playing) { 
    NSLog(@"Reset sound: %@", selectedSound); 
    [player stop]; 
    [player play]; 
} else { 
    NSLog(@"playSound: %@", selectedSound); 
    [player play];  
} 

También he intentado usar player.currentTime = 0, lo que indica que podría restablecer el jugador, que no funcionó, también intentado reajustar horaActual = 0 y luego llamar juego que no funcionó.

//Stop the player and restart it 
if (player.playing) { 
    NSLog(@"Reset sound: %@", selectedSound); 
    player.currentTime = 0; 
    [player play]; 
} else { 
    NSLog(@"playSound: %@", selectedSound); 
    [player play];  
} 

Respuesta

33

Por su situación me gustaría probar la pausa siguiente

//Pause the player and restart it 
if (player.playing) { 
    NSLog(@"Reset sound: %@", selectedSound); 
    [player pause]; 
} 

player.currentTime = 0; 
[player play]; 

Si va a reproducir inmediatamente el sonido de nuevo, sugeriría lugar de parada. Paro de llamada "Detiene la reproducción y deshace la configuración necesaria para la reproducción".

+6

Fwiw, he visto que sólo la creación de horaActual a cero es suficiente. Con el método descrito aquí, veo que el audio se niega a reproducir después de hacerlo varias veces en rápida sucesión. – Plumenator

0

ejemplo Swift:

player.currentTime = 0.0; 
Cuestiones relacionadas