Разберете дали AVPlayer зарежда или възпроизвежда mp3 от интернет

Бих искал да използвам AVPlayer за поточно предаване на .mp3 от интернет

[[AVPlayer alloc] initWithURL:url];

Всичко работи, освен факта, че не мога да разбера дали плейърът зарежда (буферира) или играе? Опитах се да използвам KVO на много свойства, но изглежда никой не ми предоставя прост начин за определяне дали AVPlayer в момента наистина възпроизвежда аудио или дали зарежда данни. Побърква ме.

Благодаря ви за предложенията предварително


person stringCode    schedule 20.10.2013    source източник


Отговори (1)


Можете да откриете кога буферирането е извършено и възпроизвеждането е започнало, като създадете периодично наблюдение на времето (с помощта на addPeriodicTimeObserverForInterval:queue:usingBlock:), за да откриете кога времето за възпроизвеждане е започнало да се движи. Например:

AVPlayer *player;

// allocate AVPlayer and start playing

__weak PlayerController *blockSelf = self;
id observerToken = [player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(1.0, NSEC_PER_SEC)
                                                              queue:nil
                                                         usingBlock:^ (CMTime time)
                    {
                        if (CMTimeGetSeconds(time) > 0.0)
                        {
                            // done buffering, should be playing now

                            [player removeTimeObserver:[blockSelf playerTimeObserverToken]];
                            [blockSelf setPlayerTimeObserverToken:observerToken:nil];
                        }
                    }];

[self setPlayerTimeObserverToken:observerToken]; // Keep a reference to the token for later use in block.
person BergQuester    schedule 20.10.2013
comment
Какво представлява методът playerTimeObserverToken? - person Brandon A; 16.11.2015
comment
@BrandonA Това е само свойство на себе си за проследяване на маркера на наблюдателя за използване, когато блокът бъде извикан. Актуализирах примера, за да изясня. - person BergQuester; 24.11.2015