Заявление AVPlayer для буферизации - PullRequest
0 голосов
/ 08 сентября 2011

Я использую AVPlayer для воспроизведения живого потока из Интернета, и мне нужно показать, что проигрыватель буферизирует:

Я использую NStimer:

timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) target:self selector:@selector(buffering) userInfo:nil repeats:YES];


-(void)buffering {

if(radiosound.rate == 1.0)
    [activityIndicator stopAnimating];

else 
    [activityIndicator startAnimating];

 }

Наверняка, свойство цены не работает должным образом, чтобы показать! Это другое утверждение, чтобы знать, буферизует ли AVPlayer?

Ответы [ 2 ]

3 голосов
/ 08 сентября 2011

Вам нужно посмотреть на настройку наблюдателей значения ключа для загруженного времени и использовать это, чтобы выяснить, ожидаете ли вы данных в текущей точке воспроизведения.

Наблюдатели настраиваются с помощью метода addObserver:self forKeyPath: options: context: на AVPlayerItem, а затем в обратном вызове observeValueForKeyPath: ofObject: change: context: вы можете выяснить, сколько времени было загружено по сравнению с тем, где в элементе проигрывается игрок.

При буферизации переменная rate не будет уменьшаться до нуля, поскольку это требуемая скорость воспроизведения, а не фактическая достижимая скорость.

0 голосов
/ 04 августа 2016

Используйте класс NSURLConnection вместе с протоколом NSURLConnectionDataDelegate.

...