5

我正在使用 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。)”

谁能告诉我为什么以及如何解决它?

非常感谢!!

4

3 回答 3

9

我也遇到这个问题。我用谷歌搜索,不止一次看到这个帖子。论坛有人说,错误码可以通过AVAudioSession.h.

就我而言,问题似乎是race condition问题。它永远不会发生在 my 上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);
于 2016-06-14T06:24:24.130 回答
2

根据苹果https://developer.apple.com/documentation/avfoundation/avaudiosession/1616597-setactive

停用具有正在运行的音频对象的音频会话会停止它们,停用会话并返回 AVAudioSessionErrorCodeIsBusy 错误。

据我了解,这意味着您的音频仍在播放并且您尝试停用会话 - 它将被激活,但您会以这种方式注意到这一事实。

于 2020-07-21T21:26:02.700 回答
1

对我来说,这就是答案:与 Airplay 断开连接。

于 2014-06-10T16:48:00.483 回答