Frage

Ich habe eine Tabelle mit Songs auf dem iOS -Gerät und wenn ich eine Zeile auswähle, schiebe ich zu einer neuen Ansicht, in der AvPlayer den ausgewählten Song abspielt. Wenn ich jetzt zurückgehe und eine andere Zeile auswähle, wird die App auf die Ansicht drücken, die neue Song abzuspielen, während ich weiterhin den, der bereits ausgeführt wurde, abspielt.

Bearbeiten: Ich habe versucht, den Rate -Wert wie diesen ohne Erfolg zu verwenden, da er immer "nicht abgespielt" ausgibt, wenn ich ihn in meine ViewDIDLoad -Methode einfügt, auch wenn ein Song abgespielt wird:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    appDelegate = (SimpleTableAppDelegate *)[[UIApplication sharedApplication] delegate];
    appDelegate.audioPlayer = [[AVPlayer alloc] init];
    if (appDelegate.audioPlayer.rate == 0.0f)
    {
        NSLog(@"not playing");
    } else {
    NSLog(@"already playing");
    }
}
War es hilfreich?

Lösung

In dieser Zeile

appDelegate.audioPlayer = [[AVPlayer alloc] init];

Sie scheinen einen neuen Avplayer zu Allloc'ing und initieren. Als solches ist es nicht überraschend, dass Sie ein "Nicht -Spiele -Ergebnis" erzielen. Lassen Sie einfach diese Linie weg.

Andere Tipps

AvPlayer hat a rate Eigenschaft, die die Drehzahl als Schwimmer angibt. 0.0f zeigt an, dass gestoppt wird. Das play und stop Methoden ändern einfach die rate Eigentum.

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    appDelegate = (SimpleTableAppDelegate *)[[UIApplication sharedApplication] delegate];
    //Stop potential existing audioPlayer prior to creating new player
    [appDelegate.audioPlayer stop];

    //Create new audio player
    appDelegate.audioPlayer = [[AVPlayer alloc] init];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top