Question

J'ai une table de table de chansons sur l'appareil iOS et si je sélectionne une ligne, je pousse à une nouvelle vue où AVPlayer commence à jouer la chanson sélectionnée. Maintenant, si je reviens et sélectionne une autre ligne, en poussant vers la vue, l'application commencera à jouer la nouvelle chanson, tout en continuant à jouer celle qui fonctionnait déjà.

Edit: J'ai essayé d'utiliser la valeur de taux comme celle-ci sans succès, car elle sortira toujours "ne joue pas" si je le mets dans ma méthode ViewDidload, même si une chanson joue:

- (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");
    }
}
Était-ce utile?

La solution

Dans cette ligne

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

Vous semblez attribuer et inimiter un nouvel AVPlayer. En tant que tel, il n'est pas surprenant que vous obteniez un résultat de «ne pas jouer». Laissez simplement cette ligne.

Autres conseils

AvPlayer a un rate propriété qui indique la vitesse de la lecture comme un flotteur. 0.0f indique arrêté. La play et stop Les méthodes changent simplement le rate propriété.

- (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];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top