2009-07-21 6 views
12

Ich habe ein Problem mit AVAudioPlayer, in dem ich einen Player zurücksetzen möchte, wenn er gerade wiedergegeben wird, und ihn erneut abspielen soll.AVAudioPlayer Zurücksetzen der aktuellen Wiedergabe von Sound und Wiedergabe von Anfang an

Ich versuche folgendes ohne Glück:

Der Sound einmal spielt, aber dann das zweite Mal, dass ich die Taste wählen sie den Ton aufhört, fängt das dritte Mal den Ton wieder auf.

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

ich auch 0 mit player.currentTime = versucht haben, die die angibt, würde der Spieler zurückgesetzt, das nicht funktionierte, habe ich versucht, auch das Zurücksetzen current = 0 und dann spielen Aufruf, die nicht funktionierten.

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

Antwort

33

Für Ihre Situation würde ich versuchen, die folgenden

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

player.currentTime = 0; 
[player play]; 

Wenn Sie den Ton wieder sofort spielen werden, würde ich Pause statt Stopp vor. Calling stop "Stoppt die Wiedergabe und macht die für die Wiedergabe benötigten Einstellungen rückgängig."

+6

FWIW, ich habe das gerade genug Einstellung current Null gesehen. Bei der hier beschriebenen Methode sehe ich, dass der Ton nach einigen kurzen Abspielvorgängen ablehnt. – Plumenator

0

Swift Beispiel:

player.currentTime = 0.0; 
Verwandte Themen