ios - AVPlayer 从 URL 开始播放音频的时间过长
问题描述
我有一个问题:我的应用程序中的 AVPlayer 从 URL 开始播放音频的时间过长。需要 5-15 秒。
更多,它给出了错误的(我猜的)等待原因:“AVPlayerWaitingWithNoItemToPlayReason”。这是我的开始播放方法:
private func setNewPlayerItem(with url: URL) {
player.automaticallyWaitsToMinimizeStalling = false
player.replaceCurrentItem(with: .init(url: url))
player.play()
}
这是我的调试。看看时间。
2019-05-31 16:40:06 +0000 player timeControlStatus 0 (paused)
2019-05-31 16:40:06 +0000 player status 0 (unknown)
2019-05-31 16:40:06 +0000 player currentItem nil
2019-05-31 16:40:15 +0000 player currentItem Optional(<AVPlayerItem: 0x600003a34fa0, asset = <AVURLAsset: 0x600003889a40, URL = *valid URL*>>)
2019-05-31 16:40:15 +0000 player currentItem status 0 (unknown)
2019-05-31 16:40:15 +0000 player timeControlStatus 2 (playing)
2019-05-31 16:40:22 +0000 player status 1 (readyToPlay)
2019-05-31 16:40:22 +0000 player timeControlStatus 1 (waitingToPlayAtSpecifiedRate)
2019-05-31 16:40:22 +0000 player timeControlStatus 2 (playing)
2019-05-31 16:40:23 +0000 player currentItem status 1 (readyToPlay)
如您所见,.currentItem存在,因此等待原因“AVPlayerWaitingWithNoItemToPlayReason”是错误的。但是为什么.timeControlStatus在 "playing"之后会变成"waitingToPlayAtSpecifiedRate "呢?
这个解决方案也对我不起作用:
player.playImmediately(atRate: 1.0)
每个轨道都会发生这种情况,因此问题不在轨道上。
请帮忙!
解决方案
推荐阅读
- getorgchart - GetOrgChart 及其背后的公司
- python - numba 的 nopython 模式下的挂钟计时器(性能计数器)
- mysql - pymysql | 将 NULL 插入 nulable int 字段
- javascript - 如何修复手风琴磁贴菜单的标签顺序?
- angular - 如何在维护引用者的同时从 Angular2 路由的 canActivate 在 Chrome 中重定向到外部 URL?
- ios - 滚动在 iPhone 上不起作用
- python - 如何获取给定python模块的属性、方法及其类的列表?
- laravel - laravel 404错误页面,重定向
- c - 如何使我的程序按大小或上次修改时间排序?- C
- hibernate - @JoinTable 在 JPA/Hibernate @OneToMany List(with @OrderColumn) 映射中遇到困难