React Native IOS应用程序在后台时播放Webrtc音频消息

hfyxw5xn  于 2023-01-05  发布在  React
关注(0)|答案(1)|浏览(241)

嗨,这可能是重复的这个question。但我没有找到正确的答案。我开发了一个应用程序,如zello推讲使用react-native。我想自动播放音频消息,没有任何用户交互时,应用程序在后台或杀死。每当任何用户发送真实的音频消息,我向ios应用程序发送一个推送通知,收到通知后,我调用一个函数,与webrtc服务器建立套接字连接,然后加入正在播放webrtc音频的房间。现在我检查了插座连接,并在应用程序在后台时收到推送通知后成功加入房间。但我听不到任何音频,并收到以下错误消息。

AURemoteIO.cpp:1668  AUIOClient_StartIO failed (561145187)

然后我设置了AVAudioSessionCategoryPlayback,错误消失了。但这次也没有听到任何音频声音。应用程序在前台时工作正常。我使用的是react-native,这只发生在IOS应用程序上。任何帮助都很感激。在xcode中,我启用了推送通知,后台获取,后台播放等。

tpxzln5u

tpxzln5u1#

您需要设置应用功能背景模式(音频和AirPlay)。
要启用此功能,请在iOS中选择您的iOS项目,然后转到签名和功能选项卡。
检查背景模式并选择音频、AirPlay和画中画选项。另外,将AVAudioSession类别设置为AVAudioSessionCategoryPlayback并将其设置为活动。示例:

do {
      try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, options: AVAudioSession.CategoryOptions.mixWithOthers)
      NSLog("Playback OK")
      try AVAudioSession.sharedInstance().setActive(true)
       NSLog("Session is Active")
     } catch {
       NSLog("ERROR: CANNOT PLAY MUSIC IN BACKGROUND. Message from code: \"\(error)\"")
  }

相关问题