You need to enable JavaScript to run this app.
导航
iOS 观播 SDK 常见问题
最近更新时间:2024.06.19 11:01:23首次发布时间:2024.06.18 20:31:08

为什么系统画中画会失败?

问题现象

观众在观看直播、预告或回放视频期间,将 App 切换至后台,但未显示系统画中画。

可能原因与解决方案

  • 观众的移动设备 iOS 版本低于 14.0。
    仅 iOS 14.0 及以上版本支持系统画中画。观众需升级 iOS 版本。

  • 您未在观播 SDK 中开启系统画中画。

    • 如需开启直播视频的系统画中画,代码示例如下所示。

      BDLLiveEngine.sharedInstance.liveRoomConfiguration.playerConfig.common.enableLivePiP = YES;
      
    • 如需开启预告和回放视频的系统画中画,代码示例如下所示。

      BDLLiveEngine.sharedInstance.liveRoomConfiguration.playerConfig.common.enableVodPiP = YES;
      

    说明

    观播 SDK 中系统画中画默认开启。如果您曾修改默认配置,请按照以上代码示例重新开启系统画中画。

  • 观众的移动设备未打开自动开启画中画开关。
    观众需在移动设备的设置 > 通用 > 画中画页面,打开自动开启画中画开关。
    图片

如果问题依然存在,请按照为什么系统画中画会失败、系统画中画中的视频会暂停播放,或直播间的声音异常?中的可能原因与解决方案进行排查与处理。

为什么系统画中画会失败、系统画中画中的视频会暂停播放,或直播间的声音异常?

问题现象

观众在观看直播、预告或回放视频期间,将 App 切换至后台后,出现以下一种或多种现象:

  • 未显示系统画中画。
  • 系统画中画中的视频暂停播放。
  • 直播间无声音或声音听不清。

可能原因与解决方案

在观众进入直播间后,观播 SDK 会将 AVAudioSession 更改为默认配置。在默认配置下,SDK 的系统画中画通常不会出现以上问题。但如果您的 App 使用的其他音视频相关代码在观众进入直播间后调整了 AVAudioSession 的默认配置,则可能导致以上问题。
AVAudioSession 的默认配置如下所示:

  • Category: AVAudioSessionCategoryPlayback
  • Mode: AVAudioSessionModeMoviePlayback
  • routeSharingPolicy: AVAudioSessionRouteSharingPolicyDefault
  • options: 0

请排除调整了 AVAudioSession 默认配置的音视频相关代码。观众再次进入直播间,即可将AVAudioSession 更改为默认配置。

说明

如果问题现象为未显示系统画中画,建议先按照为什么系统画中画会失败?中的可能原因与解决方案进行排查与处理。

为什么观众无法使用 App 的录音功能?

问题现象

观众进入直播间后,无法使用您 App 的录音功能。

可能原因与解决方案

在观众进入直播间后,观播 SDK 会将 AVAudioSession 更改为默认配置。
AVAudioSession 的默认配置如下所示:

  • Category: AVAudioSessionCategoryPlayback
  • Mode: AVAudioSessionModeMoviePlayback
  • routeSharingPolicy: AVAudioSessionRouteSharingPolicyDefault
  • options: 0

如果您想让观众使用录音等需要麦克风的功能,请将 AVAudioSessionCategoryPlayback 变更为 AVAudioSessionCategoryPlayAndRecord、将 AVAudioSessionModeMoviePlayback 变更为 AVAudioSessionModeVideoChat
示例代码如下所示。

NSError *error = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
                                        mode:AVAudioSessionModeVideoChat
                          routeSharingPolicy:AVAudioSessionRouteSharingPolicyDefault
                                     options:0
                                       error:&error];
[[AVAudioSession sharedInstance] setActive:YES error:&error];

您可以在观众完成录音等需要麦克风的功能的使用后,将 AVAudioSession 更改为默认配置。
示例代码如下所示。

NSError *error = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
                                        mode:AVAudioSessionModeMoviePlayback
                          routeSharingPolicy:AVAudioSessionRouteSharingPolicyDefault
                                     options:0
                                       error:&error];
[[AVAudioSession sharedInstance] setActive:YES error:&error];

为什么观众可以正常观看预告和回放,却加载不出直播内容?

确保您创建 SDK 应用时填写的 Bundle ID(项目包名)以及应用创建后生成的 App ID 分别与初始化 TTSDK 时传入的 Bundle ID 和 App ID 相同,同时保证您初始化 TTSDK 时传入的 Bundle ID 和项目配置的 BundleID 一致,否则会出现鉴权失败的问题。

通过 Xcode 15 使用静态库版本的 TTSDK时,编译出现 duplicate symbol 错误怎么办?

Xcode 15 的已知问题导致。详见苹果开发者论坛
您可以在 Xcode 的 App Target 下,单击 Build Settings > Other Linker Flags,并添加 -ld64