Ошибка домена =NSOSStatusErrorDomain Code=560030580 "Операция не может быть завершена. (Ошибка OSStatus 560030580.)"
Я использовал AVPlayer для воспроизведения онлайн mp3 потока! Когда я приостанавливаю плеер
[AVPlayer pause];
AVAudioSession *session = [AVAudioSession sharedInstance];
session.delegate = nil;
NSError *error = nil;
[session setActive:NO error:&error];
NSLog([error description]);
Я встретил ошибку Error Domain=NSOSStatusErrorDomain Code=560030580 "Операция не может быть завершена. (Ошибка OSStatus 560030580.)"
Может кто-нибудь сказать мне, почему и как это решить?
Большое спасибо!!
2 ответа
Я тоже сталкиваюсь с этой проблемой. Я погуглил и вижу этот пост более одного раза. С форума кто-то сказал, код ошибки можно выяснить по AVAudioSession.h
,
В моем случае проблема, кажется, race condition
проблема. Это никогда не происходит на моем iPhone 5s
, но обычно происходит на других устройствах, например: iPhone6 Plus
,
Насколько я знаю, код ошибки 560030580
средства AVAudioSessionErrorCodeIsBusy
,
От AVAudioSession.h
, следующее определено.
typedef NS_ENUM(NSInteger, AVAudioSessionErrorCode)
{
AVAudioSessionErrorCodeNone = 0,
AVAudioSessionErrorCodeMediaServicesFailed = 'msrv', /* 0x6D737276, 1836282486 */
AVAudioSessionErrorCodeIsBusy = '!act', /* 0x21616374, 560030580 */
AVAudioSessionErrorCodeIncompatibleCategory = '!cat', /* 0x21636174, 560161140 */
AVAudioSessionErrorCodeCannotInterruptOthers = '!int', /* 0x21696E74, 560557684 */
AVAudioSessionErrorCodeMissingEntitlement = 'ent?', /* 0x656E743F, 1701737535 */
AVAudioSessionErrorCodeSiriIsRecording = 'siri', /* 0x73697269, 1936290409 */
AVAudioSessionErrorCodeCannotStartPlaying = '!pla', /* 0x21706C61, 561015905 */
AVAudioSessionErrorCodeCannotStartRecording = '!rec', /* 0x21726563, 561145187 */
AVAudioSessionErrorCodeBadParam = -50,
AVAudioSessionErrorInsufficientPriority = '!pri', /* 0x21707269, 561017449 */
AVAudioSessionErrorCodeResourceNotAvailable = '!res', /* 0x21726573, 561145203 */
AVAudioSessionErrorCodeUnspecified = 'what' /* 0x77686174, 2003329396 */
} NS_AVAILABLE_IOS(7_0);
Согласно Apple https://developer.apple.com/documentation/avfoundation/avaudiosession/1616597-setactive:
Деактивация аудиосеанса, в котором запущены аудиообъекты, останавливает их, деактивирует сеанс и возвращает ошибку AVAudioSessionErrorCodeIsBusy.
Насколько я понимаю, это означает, что ваш звук все еще воспроизводится, и вы пытаетесь деактивировать сеанс - он будет активирован, но вы будете отмечены таким образом об этом факте.