【问题标题】:Continue audio playback when iPhone is lockediPhone 锁定时继续播放音频
【发布时间】:2012-01-19 02:11:38
【问题描述】:

当 iPhone 自动锁定或用户锁定手机时,如何在 iPhone 中继续播放音频?

我已经试过了

session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:NULL];

但这似乎不起作用。

【问题讨论】:

    标签: ios objective-c audio playback lockscreen


    【解决方案1】:

    我终于想通了!

    首先,将这些框架包含到您的项目中:AudioToolbox、CoreAudio、MediaPlayer 和 AVFoundation。将它们全部导入到放置播放器的 viewController 中。分配并开始播放音频后,插入以下代码:

    UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
    AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory);
    AudioSessionSetActive(true);
    

    最后,转到您的应用程序 Info.plist 文件并添加一个名为 UIBackgroundModes 的行。新行将是一个数组,将包含 1 个项目,即项目 0。为此,您只需将值设置为音频。你完成了!享受你的背景音频播放应用程序!

    【讨论】:

      【解决方案2】:

      This link 应该会有所帮助。

      您需要阻止应用进入深度睡眠模式:

      UInt32 category = kAudioSessionCategory_MediaPlayback;
      OSStatus result = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
                                                                                  sizeof(category), &category);
      
      if (result){
          DebugLog(@"ERROR SETTING AUDIO CATEGORY!\n");
      }
      
      result = AudioSessionSetActive(true);
      if (result) {
          DebugLog(@"ERROR SETTING AUDIO SESSION ACTIVE!\n");
      }
      

      【讨论】:

      • 感谢您的回答!但是当我尝试编译代码时,我得到了一些我不太明白的错误和警告。首先,XCode 认为kAudioSessionCategory_MediaPlayback 是在尝试编写AVAudioSessionCategoryPlayback。然后我收到使用未声明的标识符“kAudioSessionCategory_MediaPlayback”的错误。并且警告说“函数 AudioSessionSetProperty 的隐式声明在 C99 中无效。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多