【发布时间】:2020-07-25 17:28:36
【问题描述】:
当我尝试播放视频时,出现以下异常。
*** -[CustomSlider _setValue:minValue:maxValue:andSendAction:] 中的断言失败,/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3698.119.2/UISlider.m:1477
*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“尝试将滑块的 minimumValue (0.000000) 设置为大于 maximumValue (nan)”
libc++abi.dylib:以 NSException 类型的未捕获异常终止
这是我的代码:
这段代码在我在 iOS 13 设备上运行时运行良好,但在我在 iOS 12.3.1 设备上运行时崩溃。
SDK: iOS 13
工具: XCode 11.3.1
目标设备: 运行 iOS 12.3 的 iPhone 6S Plus。 1
func updateUIforPlayerItemStatus() {
guard let currentItem = player.currentItem else { return }
switch currentItem.status {
case .readyToPlay:
playPauseButton.isEnabled = true
guard player.currentItem!.duration >= CMTime.zero else {
return
}
let newDurationSeconds = Float(currentItem.duration.seconds)
let currentTime = Float(player.currentTime().seconds)
timeSlider.minimumValue = 0.0
timeSlider.maximumValue = newDurationSeconds
timeSlider.value = currentTime
timeSlider.isEnabled = true
durationLabel.isEnabled = true
durationLabel.text = createTimeString(time: newDurationSeconds)
player.playImmediately(atRate: playbackRate)
default:
playPauseButton.isEnabled = false
timeSlider.isEnabled = false
durationLabel.isEnabled = false
}
}
【问题讨论】:
-
检查 currentItem.duration.seconds 值。好像是0
-
我正在使用的所有视频资产的时间都超过 2 秒
标签: ios swift avfoundation avkit