AVCaptureSeesion 不可用时notify的相关汇总。
/*!
@constant AVCaptureSessionDidStartRunningNotification
@abstract
Posted when an instance of AVCaptureSession successfully starts running.
@discussion
Clients may observe the AVCaptureSessionDidStartRunningNotification to know when an instance of AVCaptureSession starts running.
*/
AVF_EXPORT NSString *const AVCaptureSessionDidStartRunningNotification API_AVAILABLE(macos(10.7), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
/*!
@constant AVCaptureSessionDidStopRunningNotification
@abstract
Posted when an instance of AVCaptureSession stops running.
@discussion
Clients may observe the AVCaptureSessionDidStopRunningNotification to know when an instance of AVCaptureSession stops running. An AVCaptureSession instance may stop running automatically due to external system conditions, such as the device going to sleep, or being locked by a user.
*/
AVF_EXPORT NSString *const AVCaptureSessionDidStopRunningNotification API_AVAILABLE(macos(10.7), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
/*!
@constant AVCaptureSessionWasInterruptedNotification
@abstract
Posted when an instance of AVCaptureSession becomes interrupted.
@discussion
Clients may observe the AVCaptureSessionWasInterruptedNotification to know when an instance of AVCaptureSession has been interrupted, for example, by an incoming phone call, or alarm, or another application taking control of needed hardware resources. When appropriate, the AVCaptureSession instance will stop running automatically in response to an interruption.
Beginning in iOS 9.0, the AVCaptureSessionWasInterruptedNotification userInfo dictionary contains an AVCaptureSessionInterruptionReasonKey indicating the reason for the interruption.
*/
AVF_EXPORT NSString *const AVCaptureSessionWasInterruptedNotification API_AVAILABLE(macos(10.14), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
/*!
@constant AVCaptureSessionInterruptionEndedNotification
@abstract
Posted when an instance of AVCaptureSession ceases to be interrupted.
@discussion
Clients may observe the AVCaptureSessionInterruptionEndedNotification to know when an instance of AVCaptureSession ceases to be interrupted, for example, when a phone call ends, and hardware resources needed to run the session are again available. When appropriate, the AVCaptureSession instance that was previously stopped in response to an interruption will automatically restart once the interruption ends.
*/
AVF_EXPORT NSString *const AVCaptureSessionInterruptionEndedNotification API_AVAILABLE(macos(10.14), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
/*!
@constant AVCaptureSessionRuntimeErrorNotification
@abstract
Posted when an unexpected error occurs while an AVCaptureSession instance is running.
@discussion
The notification object is the AVCaptureSession instance that encountered a runtime error. The userInfo dictionary contains an NSError for the key AVCaptureSessionErrorKey.
*/
AVF_EXPORT NSString *const AVCaptureSessionRuntimeErrorNotification API_AVAILABLE(macos(10.7), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
AVCaptureSessionInterruptionReason 对应的原因:
typedef NS_ENUM(NSInteger, AVCaptureSessionInterruptionReason) {
AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableInBackground = 1,
AVCaptureSessionInterruptionReasonAudioDeviceInUseByAnotherClient = 2,
AVCaptureSessionInterruptionReasonVideoDeviceInUseByAnotherClient = 3,
AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableWithMultipleForegroundApps = 4,
AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableDueToSystemPressure API_AVAILABLE(ios(11.1)) = 5,
} API_AVAILABLE(ios(9.0)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
NSNotification 对应的错误类型汇总:
typedef NS_ERROR_ENUM(AVFoundationErrorDomain, AVError) {
AVErrorUnknown = -11800,
AVErrorOutOfMemory = -11801,
AVErrorSessionNotRunning = -11803,
AVErrorDeviceAlreadyUsedByAnotherSession = -11804,
AVErrorNoDataCaptured = -11805,
AVErrorSessionConfigurationChanged = -11806,
AVErrorDiskFull = -11807,
AVErrorDeviceWasDisconnected = -11808,
AVErrorMediaChanged = -11809,
AVErrorMaximumDurationReached = -11810,
AVErrorMaximumFileSizeReached = -11811,
AVErrorMediaDiscontinuity = -11812,
AVErrorMaximumNumberOfSamplesForFileFormatReached = -11813,
AVErrorDeviceNotConnected = -11814,
AVErrorDeviceInUseByAnotherApplication = -11815,
AVErrorDeviceLockedForConfigurationByAnotherProcess = -11817,
#if TARGET_OS_IPHONE
AVErrorSessionWasInterrupted = -11818,
AVErrorMediaServicesWereReset = -11819,
#endif
AVErrorExportFailed = -11820,
AVErrorDecodeFailed = -11821, // userInfo may contain AVErrorMediaTypeKey, AVErrorMediaSubTypeKey & AVErrorPresentationTimeStampKey, if available
AVErrorInvalidSourceMedia = -11822,
AVErrorFileAlreadyExists = -11823,
AVErrorCompositionTrackSegmentsNotContiguous = -11824,
AVErrorInvalidCompositionTrackSegmentDuration = -11825,
AVErrorInvalidCompositionTrackSegmentSourceStartTime= -11826,
AVErrorInvalidCompositionTrackSegmentSourceDuration = -11827,
AVErrorFileFormatNotRecognized = -11828,
AVErrorFileFailedToParse = -11829,
AVErrorMaximumStillImageCaptureRequestsExceeded = -11830,
AVErrorContentIsProtected = -11831,
AVErrorNoImageAtTime = -11832,
AVErrorDecoderNotFound = -11833, // userInfo may contain AVErrorMediaTypeKey & AVErrorMediaSubTypeKey, if available
AVErrorEncoderNotFound = -11834, // userInfo may contain AVErrorMediaTypeKey & AVErrorMediaSubTypeKey, if available
AVErrorContentIsNotAuthorized = -11835,
AVErrorApplicationIsNotAuthorized = -11836,
#if TARGET_OS_IPHONE
AVErrorDeviceIsNotAvailableInBackground NS_DEPRECATED_IOS(4_3, 9_0, "AVCaptureSession no longer produces an AVCaptureSessionRuntimeErrorNotification with this error. See AVCaptureSessionInterruptionReasonVideoDeviceNotAvailableInBackground.") = -11837,
#endif
AVErrorOperationNotSupportedForAsset = -11838,
AVErrorDecoderTemporarilyUnavailable = -11839, // userInfo may contain AVErrorMediaTypeKey & AVErrorMediaSubTypeKey, if available
AVErrorEncoderTemporarilyUnavailable = -11840, // userInfo may contain AVErrorMediaTypeKey & AVErrorMediaSubTypeKey, if available
AVErrorInvalidVideoComposition = -11841,
AVErrorReferenceForbiddenByReferencePolicy = -11842,
AVErrorInvalidOutputURLPathExtension = -11843,
AVErrorScreenCaptureFailed = -11844,
AVErrorDisplayWasDisabled = -11845,
AVErrorTorchLevelUnavailable = -11846,
#if TARGET_OS_IPHONE
AVErrorOperationInterrupted = -11847,
#endif
AVErrorIncompatibleAsset = -11848,
AVErrorFailedToLoadMediaData = -11849,
AVErrorServerIncorrectlyConfigured = -11850,
AVErrorApplicationIsNotAuthorizedToUseDevice = -11852,
AVErrorFailedToParse NS_AVAILABLE(10_10, 8_0) = -11853,
AVErrorFileTypeDoesNotSupportSampleReferences NS_AVAILABLE(10_10, 8_0) = -11854, // userInfo contains AVErrorFileTypeKey
AVErrorUndecodableMediaData NS_AVAILABLE(10_10, 8_0) = -11855,
AVErrorAirPlayControllerRequiresInternet NS_AVAILABLE(10_10, 8_3) = -11856,
AVErrorAirPlayReceiverRequiresInternet NS_AVAILABLE(10_10, 8_3) = -11857,
AVErrorVideoCompositorFailed NS_AVAILABLE(10_11, 9_0) = -11858,
#if TARGET_OS_IPHONE
AVErrorRecordingAlreadyInProgress NS_AVAILABLE_IOS(9_0) = -11859, // on iOS, AVCaptureMovieFileOutput only supports one recording at a time
#endif
#if !TARGET_OS_IPHONE
AVErrorCreateContentKeyRequestFailed NS_AVAILABLE(10_11, NA) = -11860,
#endif
AVErrorUnsupportedOutputSettings NS_AVAILABLE(10_12, 10_0) = -11861,
AVErrorOperationNotAllowed NS_AVAILABLE(10_12, 10_0) = -11862,
AVErrorContentIsUnavailable NS_AVAILABLE(10_13, 11_0) = -11863,
AVErrorFormatUnsupported NS_AVAILABLE(10_13, 11_0) = -11864,
AVErrorMalformedDepth NS_AVAILABLE(10_13, 11_0) = -11865,
AVErrorContentNotUpdated NS_AVAILABLE(10_13, 11_0) = -11866,
AVErrorNoLongerPlayable NS_AVAILABLE(10_13, 11_0) = -11867,
AVErrorNoCompatibleAlternatesForExternalDisplay API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) __WATCHOS_PROHIBITED = -11868,
AVErrorNoSourceTrack API_AVAILABLE(macos(10.13.2), ios(11.2), tvos(11.2)) __WATCHOS_PROHIBITED = -11869,
AVErrorExternalPlaybackNotSupportedForAsset API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0)) __WATCHOS_PROHIBITED = -11870,
};