diff --git a/Sources/PlayerBridge.swift b/Sources/PlayerBridge.swift index 1c2805c..09df647 100644 --- a/Sources/PlayerBridge.swift +++ b/Sources/PlayerBridge.swift @@ -255,6 +255,9 @@ final class PlayerBridge: ObservableObject { } } + // 播放器报错的诊断消息(存在这里,和错误一起显示) + private var lastDiagMsg = "" + func playIndex(_ index: Int) { guard index >= 0 && index < queue.count else { return } @@ -280,6 +283,7 @@ final class PlayerBridge: ObservableObject { try? fh.close() } diagLog("Local file check: exists=\(exists) readable=\(readable) size=\(fileSize) magic=\(String(format:"%08X", magic))") + lastDiagMsg = "file: exists=\(exists) readable=\(readable)\nsize=\(fileSize) magic=\(String(format:"%08X", magic))" } // 先清除旧的 KVO,避免野指针 @@ -358,7 +362,7 @@ final class PlayerBridge: ObservableObject { let errMsg = err?.localizedDescription ?? "Unknown error" let errCode = (err as NSError?)?.code ?? 0 let errDomain = (err as NSError?)?.domain ?? "none" - let fullMsg = "\(errMsg)\n[code:\(errCode) domain:\(errDomain)]\n\(item.url.lastPathComponent)" + let fullMsg = "\(errMsg)\n[code:\(errCode) domain:\(errDomain)]\n\(self?.lastDiagMsg ?? "")\n\(item.url.lastPathComponent)" self?.diagLog("AVPlayerItem FAILED: \(errMsg) code=\(errCode) domain=\(errDomain)") self?.playerStatus = .error(fullMsg) self?.loadingTimer?.invalidate()