是否可以暂停和恢复缓冲AVPlayer?是否可以暂停和恢复缓冲AVPlayer?
2
A
回答
4
是的,这是可能的某种程度上!
您可以使用playerItem的preferredForwardBufferDuration
属性来决定玩家应该预取当前播放时间的持续时间。但可悲的是,这仅仅是从IOS版本10
宏检查系统版本:
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
现在,您可以设置你要多少时间预取(以秒为单位)。
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.0")) {
NSTimeInterval interval = 1; // set to 0 for default duration.
_player.currentItem.preferredForwardBufferDuration = interval;
_player.automaticallyWaitsToMinimizeStalling = YES;
}
automaticallyWaitsToMinimizeStalling
是另一个特性使在所述avplayer或autoplay
特征autowait
。因为如果preferredForwardBufferDuration
设置为较短的持续时间,玩家可能频繁停顿。
您还可以使用playeritem的canUseNetworkResourcesForLiveStreamingWhilePaused
属性来设置播放器处于暂停状态时播放器应该继续还是暂停缓冲。这从iOS 9开始可用。
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9.0")) {
_player.currentItem.canUseNetworkResourcesForLiveStreamingWhilePaused = NO;
}
的系统版本健康检查是非常重要的。你可以用 使用上面提到的宏来做到这一点。否则,应用程序将会崩溃 。
UPDATE - SWIFT:
if #available(iOS 10.0, *) {
player.currentItem?.preferredForwardBufferDuration = TimeInterval(1)
player.automaticallyWaitsToMinimizeStalling = true;
}
0
AV播放器在几种情况下缓冲视频,但没有明确的文档。你可以检查currentItem.loadedTimeRanges看看发生了什么更多的信息可以在这个线程AVPlayer buffering, pausing notification, and poster frame
0
根据我的测试,preferredForwardBufferDuration
应该大于或等于1.0,如果低于1.0,默认缓存时间将被使用。
相关问题
- 1. AVPlayer播放,暂停和缓冲问题
- 2. 是否可以暂停和恢复http文件上传?
- 3. AVPlayer在缓冲后未恢复
- 4. 在jupyter中暂停后是否可以恢复运行
- 5. 是否有可能恢复以前的GL帧缓冲区?
- 6. 暂停和恢复流
- 7. 暂停和恢复BackgroundWorker
- 8. 暂停和恢复AsyncTasks? (Android)
- 9. 暂停和恢复SKScene
- 10. 暂停和恢复ASINetworkQueue
- 11. 暂停和恢复功能
- 12. WebRTC暂停和恢复流
- 13. AVPlayer在暂停后继续从URL缓冲多长时间?
- 14. 对于任务暂停和恢复我可以使用ManualResetEventSlim吗?
- 15. 暂停/恢复jquery .animate()?
- 16. Cocos2d引擎 - 暂停,恢复
- 17. 暂停/恢复线程?
- 18. 暂停/恢复任务
- 19. Android应用暂停恢复
- 20. Android暂停/恢复服务
- 21. lftp暂停和恢复下载
- 22. 安全地暂停和恢复线程
- 23. 如何暂停和恢复Jenkins构建
- 24. 音频录制|暂停和恢复
- 25. 如何暂停和恢复GameLoop?
- 26. “暂停”和“恢复”一个ng-repeat
- 27. 暂停和恢复Foreach循环
- 28. VB.Net暂停和恢复对下一个
- 29. 如何暂停和恢复JavaScript?
- 30. 如何暂停和恢复线程