Код: Выделить всё
videoDeviceNotAvailableWithMultipleForegroundApps
< /code>
Я изначально думал, что эта ошибка произошла только на iPad, но также происходит на iPhone. Как я могу правильно справиться с этой ситуацией, чтобы предотвратить пустой экран? < /P>
public let cameraCaptureSession = AVCaptureSession()
NotificationCenter.default.addObserver(
self,
selector: #selector(sessionWasInterrupted),
name: .AVCaptureSessionWasInterrupted,
object: cameraCaptureSession
)
@objc private func sessionWasInterrupted(notification: Notification) {
if let reasonValue = notification.userInfo?[AVCaptureSessionInterruptionReasonKey] as? Int,
let reason = AVCaptureSession.InterruptionReason(rawValue: reasonValue) {
let reasonString = switch reason {
case .videoDeviceNotAvailableInBackground:
"videoDeviceNotAvailableInBackground"
case .audioDeviceInUseByAnotherClient:
"audioDeviceInUseByAnotherClient"
case .videoDeviceInUseByAnotherClient:
"videoDeviceInUseByAnotherClient"
case .videoDeviceNotAvailableWithMultipleForegroundApps:
"videoDeviceNotAvailableWithMultipleForegroundApps"
case .videoDeviceNotAvailableDueToSystemPressure:
"videoDeviceNotAvailableDueToSystemPressure"
@unknown default:
"unknown(\(reason.rawValue))"
}
print("Camera session interrupted: \(reasonString)")
// How should I handle the videoDeviceNotAvailableWithMultipleForegroundApps case?
// Users see a blank screen and don't know what's happening
}
< /code>
Примечание: я реализовал систему повторной попытки, когда возникает эта ошибка, но она не помогает - та же ошибка сохраняется после каждой попытки повторения. Эта ошибка случается редко и затрагивает только меньшинство пользователей, и они не сталкиваются с этой проблемой с другими приложениями камеры. /> Можно ли предотвратить эту ошибку, или я должен сосредоточиться на обработке изящной ошибки?cameraSession.stopRunning()
Любое руководство будет оценено!
Подробнее здесь: https://stackoverflow.com/questions/797 ... leforegrou