Canlı akışı izlemek için AVPlayer kullanıyorum. Bu akış, kullanıcının bir saat önce arama yapabildiği ve oynayabileceği bir saat yakalamayı destekler. Ama bir sorum var, oyuncunun oynadığı doğru pozisyonu nasıl bilebilirim. Oyuncu pozisyonunda mevcut pozisyonu göstermem gerekiyor. Örneğin, kullanıcı yarım saat önce oynuyorsa, ekran -30: 00; Kullanıcı en son içeriği oynatıyorsa, oynatıcı 00:00 gösterecek ya da yaşayacak. TeşekkürCanlı yayın akışının doğru zamanlama nasıl elde edilir avplayer
4
A
cevap
2
canlı pozisyon zehir olsun ve seekableTimeRanges
AVPlayerItem
ait kullanarak kendisine yapabilirsiniz etmeye için: currentTime
yöntem
CMTimeRange seekableRange = [player.currentItem.seekableTimeRanges.lastObject CMTimeRangeValue];
CGFloat seekableStart = CMTimeGetSeconds(seekableRange.start);
CGFloat seekableDuration = CMTimeGetSeconds(seekableRange.duration);
CGFloat livePosition = seekableStart + seekableDuration;
[player seekToTime:CMTimeMake(livePosition, 1)];
geri biraz zaman aramaya Ayrıca, geçerli oyun konumunu elde edebilirsiniz
CGFloat current = CMTimeGetSeconds([self.player.currentItem currentTime]);
GCFloat diff = livePosition - current;
2
Swift çözeltisi:
override func getLiveDuration() -> Float {
var result : Float = 0.0;
if let items = player.currentItem?.seekableTimeRanges {
if(!items.isEmpty) {
let range = items[items.count - 1]
let timeRange = range.timeRangeValue
let startSeconds = CMTimeGetSeconds(timeRange.start)
let durationSeconds = CMTimeGetSeconds(timeRange.duration)
result = Float(startSeconds + durationSeconds)
}
}
return result;
}
İlgili konular
- 1. Pandalar kullanarak iki zamanlama arasındaki ilişki nasıl elde edilir
- 2. jquery canlı yayın seç
- 3. AVPlayer durumu nasıl kontrol edilir?
- 4. YouTube canlı akışının gerçek video URL'sini nasıl alabilirim?
- 5. Denetim Şablonu Nasıl Elde Edilir
- 6. URL almak için doğru zamanlama
- 7. Yayın bildirimi nasıl iptal edilir? (Sipariş Edilmemiş Bir Yayın için)
- 8. Canlı yayın kamerası ve mikrofon flaşsız
- 9. onWindowFocusChanged Fragment nasıl elde edilir?
- 10. UITableViewCell boyutu nasıl elde edilir?
- 11. JPopupMenu'da odaklanma nasıl elde edilir
- 12. Paket değiştirilen yayın doğru şekilde nasıl filtrelenir
- 13. Bir arsa (ylim) nasıl elde edilir?
- 14. AVPlayer
- 15. Jquery - Li'ye tıkladığınızda nasıl değer elde edilir?
- 16. Hazırlanan ifadeden skaler sonuç nasıl elde edilir?
- 17. SAX: Bir öğenin içeriği nasıl elde edilir
- 18. Android'de arka plan rengi nasıl elde edilir?
- 19. Çift çözünürlükte ekran görüntüsü nasıl elde edilir?
- 20. Bir dizideki anahtarın konumu nasıl elde edilir
- 21. Python çerezin etki alanı nasıl elde edilir
- 22. 2^x = 8000 x nasıl elde edilir?
- 23. JDesktopPane - etkin çerçeve nasıl elde edilir
- 24. SQLAlchemy kullanarak iç birleştirme nasıl elde edilir?
- 25. % ROWTYPE ile gerçek imza nasıl elde edilir
- 26. React Native'de 'FameLayout' bileşenini nasıl elde edilir?
- 27. TimeZone'a göre şimdiki zaman nasıl elde edilir?
- 28. İki DataFrames arasındaki fark nasıl elde edilir?
- 29. C# de const-doğruluk nasıl elde edilir?
- 30. ncurses'da nasıl parlak bir renk elde edilir?
Harika bir çözüm, ama benim durumumda (AVPlayerItem: loadedTimeRanges start + duration) değerinin livePosition değerinden neden biraz daha büyük olduğunu merak ediyorum. –