anyLive 简介
anyLive 是 anyRTC 开源的推拉流项目。采用跨平台架构设计,一套代码支持Android、iOS、Windows、Mac、Ubuntu等平台。本文主要介绍anyLive iOS平台的实现。
源码下载

开发环境
-
开发工具:Xcode13 真机运行
-
开发语言:Objective-C、Swift
-
实现:推拉流。
平台兼容
| 系统 | 编译环境 | CPU架构 |
|---|---|---|
| Android 4.4及以上 | Android Studio、NDK | armeabi-v7a、arm64-v8a |
| iOS 9.0及以上 | Xcode13 | arm64 |
| Windows 7及以上 | VS2015,VS2017 | x86、x86-64 |
项目结构
anyLive 实现了推流、拉流、屏幕共享、美颜等功能。

示例代码
效果展示

代码实现
var menus = [
[MenuItem(imageName: "icon_push", title: "直播推流", subTitle: "采用WebRTC底层架构,支持RTMP/HLS/HTTP-FLV")],
[MenuItem(imageName: "icon_pull", title: "直播拉流(播放)", subTitle: "低功直播播放器,支持软硬解切换,横竖切换、低延迟等")],
[MenuItem(imageName: "icon_video", title: "小视频播放", subTitle: "支持首屏秒开、清晰度无缝切换、码率自适应等多种特性")]
]
let identifier = "ARLiveMainCell"
lazy var identifierArr: [String] = {
["Live_JoinVC", "Player_JoinVC", "Video_JoinVC"]
}()
override func viewDidLoad() {
super.viewDidLoad()
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem
let label = UILabel(frame: CGRectZero)
label.textColor = UIColor(hexString: "#C4C4CE")
label.font = UIFont(name: PingFang, size: 12)
label.textAlignment = .center
label.text = "Power by anyRTC"
view.addSubview(label)
liveEngine = ARLiveEngineKit(delegate: nil)
}
override func viewWill

本文详细介绍了anyRTC开源项目anyLive在iOS平台上的推流、拉流功能实现,包括源码下载、开发环境配置、关键代码示例。anyLive支持Objective-C和Swift,提供跨平台兼容性,适用于Android、iOS、Windows和Mac等系统。通过示例代码展示了推流和拉流的流程,包括推流的首帧采集回调和推流状态更新,以及拉流的视频状态变化和播放器音量回调。
最低0.47元/天 解锁文章
3079

被折叠的 条评论
为什么被折叠?



