Akış sesinin bir oynatma listesini yükleyen bir AVQueuePlayer
(ki bu açıkça AVPlayer
3'ü genişletir) sahibim. Akış tüm iyi çalışıyor, ancak kullanıcının sesinin yüklendiğini göstermek için bir etkinlik göstergesine sahip olmak isterim. Sorun şu ki, AVQueuePlayer
(veya AVPlayer
) 'da böyle bir Bildirimin ses tamponunun ne zaman yüklemeyi bitirdiğini/oynatmaya hazır olduğunu gösterecek şekilde göremiyorum (bir temsilci yöntemi gibi görünüyor). Düşüncesi olan var mı?AVQueuePlayer/AVPlayer yükleme bildirimi?
6
A
cevap
26
Bunu yapmak için KVO kullanmanız gerekecektir. Bu gibi sıraya ekliyoruz her öğe için
şunları yapabilirsiniz kurulum gözlemciler:item_ = [[AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://somefunkyurl"]] retain];
[item_ addObserver:self forKeyPath:@"status" options:0 context:nil];
[item_ addObserver:self forKeyPath:@"playbackBufferEmpty" options:0 context:nil];
Şimdi gözlemci yöntemine içinde bu öğenin durumunu değerlendirebilir; Bir etkinlik göstergesi veya 'tampon' uyarı göstermek böylece
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([object isKindOfClass:[AVPlayerItem class]])
{
AVPlayerItem *item = (AVPlayerItem *)object;
//playerItem status value changed?
if ([keyPath isEqualToString:@"status"])
{ //yes->check it...
switch(item.status)
{
case AVPlayerItemStatusFailed:
NSLog(@"player item status failed");
break;
case AVPlayerItemStatusReadyToPlay:
NSLog(@"player item status is ready to play");
break;
case AVPlayerItemStatusUnknown:
NSLog(@"player item status is unknown");
break;
}
}
else if ([keyPath isEqualToString:@"playbackBufferEmpty"])
{
if (item.playbackBufferEmpty)
{
NSLog(@"player item playback buffer is empty");
}
}
}
}
İlgili konular
- 1. NSNotification bildirimi siparişi bildirimi
- 2. Bildirimi, bildirimi, bildirme
- 3. Bir Parse gönderme bildirimi Belirli bir kullanıcıya push bildirimi
- 4. s3 nesnesinin Glacier alma bildirimi
- 5. Parse Push bildirimi nasıl başlatılır Push bildirimi
- 6. Vaka bildirimi
- 7. OCaml bildirimi
- 8. Erişim Bildirimi
- 9. Varolan Bildirimi
- 10. Android bildirimi,
- 11. FogBugz'da zaman çizelgesi bildirimi?
- 12. Çok Uzun Python Bildirimi
- 13. Python "with" bildirimi sözdizimi
- 14. Android Wear Özel Bildirimi
- 15. Perl Anahtar Bildirimi
- 16. Push Bildirimi Rozetleri Gelmiyor
- 17. Kilitle yeniden sıralama bildirimi
- 18. iOS uygulaması güncelleştirme bildirimi
- 19. Spring MVC Hata bildirimi
- 20. Firebase Push Bildirimi
- 21. Tanımsız Endeksi Bildirimi
- 22. JavaScript anahtarı bildirimi,
- 23. AVPlayer ileri sınıf bildirimi
- 24. Push Bildirimi gönderilemedi
- 25. Olağandışı "statik" yöntem bildirimi
- 26. SQlite concat select bildirimi
- 27. cepten PDO Bildirimi Hata
- 28. İçe aktarma bildirimi
- 29. Android: Bildirimi Ayarla Görüntü
- 30. Java'da bellek kıtlığı bildirimi
Ayrıca tampon oynatma sırasında boşaltır zaman eğer/algılamak için AVPlayerItem nesnelerin playbackBufferEmpty özelliğini gözlemleyebiliriz. – reddersky
@virorum İyi nokta, bunu bir cevapıma ekledi - ty! – Till
İsterseniz yorumumu her zaman yapabilirsiniz ;-) – reddersky