SwiftUI-接入Bilibili直播拉流SDK【最新保姆级教程】

💡 原文中文,约3800字,阅读约需9分钟。
📝

内容提要

本文介绍了如何在SwiftUI中接入Bilibili直播拉流SDK。首先,需要下载并安装ijkplayer,然后修正脚本文件以解决编译问题。接着,安装ffmpeg并生成Framework。最后,将IJKMediaFramework.framework添加到项目中,并设置模拟器运行类型。文章提供了示例代码和效果图,并附上了Github地址和LiveSDK下载链接。

🔎

延伸解读

为何需要修改脚本文件

由于B站SDK长期未更新,仍包含苹果已废弃的armv7架构,导致编译ffmpeg库失败。文章指导修改compile-ffmpeg.sh和do-compile-ffmpeg.sh,移除armv7支持并添加--enable-pic --disable-asm标志,从而解决编译问题。这提醒开发者,使用老旧开源库时需根据当前开发环境调整构建脚本。

生成通用Framework的关键步骤

生成IJKMediaFramework.framework需分别针对模拟器和真机编译Release版本,然后使用lipo命令合并两个平台的二进制文件。合并后替换原有framework,并添加必要依赖库。此过程确保framework能在不同架构设备上运行,是集成第三方库的常见做法。

SwiftUI集成方式与生命周期管理

示例代码通过UIViewRepresentable将IJKFFMoviePlayerController嵌入SwiftUI视图。在PlayerView中初始化播放器并设置自动播放,在didMoveToSuperview中根据父视图是否存在来调用prepareToPlay或shutdown,以管理播放器生命周期。这展示了在SwiftUI中封装UIKit组件的典型模式。

❓

Q&A

如何在SwiftUI中接入Bilibili直播拉流SDK?

首先下载并安装ijkplayer,修正脚本文件以解决编译问题,然后安装ffmpeg并生成Framework,最后将IJKMediaFramework.framework添加到项目中并设置模拟器运行类型。

ijkplayer是什么?

ijkplayer是一个轻量级的开源视频播放器,支持多种视频和流协议,适用于Android和iOS平台。

在接入过程中需要修正哪些脚本文件?

需要修正compile-ffmpeg.sh和do-compile-ffmpeg.sh脚本文件,以解决编译时的架构问题。

如何生成IJKMediaFramework.framework?

在ijkplayer-ios/ios/IJKMediaPlayer目录下打开IJKMediaPlayer.xcodeproj,选择IJKMediaFramework并将Scheme的Build方法改为Release,分别编译模拟器和真机。

文章中提供了哪些资源链接?

文章提供了Github地址和LiveSDK下载链接,方便开发者获取资源。

示例代码中如何使用IJKMediaFramework?

示例代码中通过创建PlayLiveView结构体和PlayerView类来使用IJKMediaFramework,设置视频播放的URL和相关选项。

🏷️

标签

➡️

继续阅读