【问题标题】:Deactivating avaudiosession after going back from videoviewcontroller从 videoviewcontroller 返回后停用 avaudiosession
【发布时间】:2013-11-12 14:14:41
【问题描述】:

我正在尝试在后台播放视频,一切正常,视频播放并在后台正常暂停。但唯一的问题是每当我从我的 videoviewcontroller(播放到菜单的视图),视频仍然保留在背景中,您可以将其视为 Musicplayer 位置。退出 videoviewcontroller 后如何将其删除

我试过了

    NSError *error;
    [[AVAudioSession sharedInstance] setActive:NO error:&error];

    NSLog(@"ERROR: %@", error); 

输出 错误:(空) 此代码从背景中删除视频

 [[AVAudioSession sharedInstance] setCategory:nil error:nil];

但是如果现在想再次播放视频,它将不会在后台模式下播放

【问题讨论】:

  • 在下面添加代码并使用日志更新您的问题。 NSError *error; [[AVAudioSession sharedInstance] setActive:NO error:&error]; NSLog(@"%@", error);
  • 不幸的是我不知道原因。我希望错误不会为零。
  • @SviatoslavYakymiv :如果我记录错误,则在模拟器中收到“NULL”错误但在真实设备中运行时出现此错误Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)

标签: ios objective-c avfoundation avaudiosession audiosession


【解决方案1】:

来自苹果:AVAudioSession class documentation

上面写着

如果任何关联的音频对象(例如队列、转换器、播放器或录音机)当前正在运行,则停用会话将失败。

所以你需要在调用 setActive:No 之前停止任何/所有这些音频对象

我在停止音频队列之前尝试执行此操作时遇到了类似问题。 在我的情况下,我使用的是外部音频库 (Dirac),而我之前只需要从该库中调用 AudioQueueStop 方法。

【讨论】:

  • 在编写此代码之前停止了电影播放器​​仍然没有成功:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 2019-07-25
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
相关资源
最近更新 更多