Talk is cheap. Show me the code.关注【融云全球互联网通信云】了解更多

这句话相信大家都不陌生,甚至是不少开发者的信条。这是 Linus Torvalds 最为人称道的金句,而提起他,人们还会立马联想到另一个词,开源。

上世纪九十年代,Linus Torvalds 采用自由软件许可证—— GNU 通用公共许可证,发布了 Linux,成为当时开源浪潮的主战场。此后,Linux 在成千上万开发者的贡献下,逐渐成为世界上最受欢迎的操作系统。

二十几年过去了,业界关于开源与商业的龃龉依然未解。但开源在全球范围内的高速发展已经让人无法忽视。

事实上,软件开发本身就是一种社会化的、集体性的智慧活动,大部分的软件是基于开源基础架构搭建的,复用大量已有的库和工具。

开源不仅仅是程序员的技术信仰,更是全球软件技术和产业创新的主导模式,是加速基础软件创新,加强社会协作,提升效率、扩充生态的高效方式。

作为以开发者为中心的科技企业,创办 8 年来,融云始终是开源生态的参与者和贡献者。

场景化组件开源,融云持续回馈开源生态_ios

近期,融云将多个场景化组件开源,包含音乐播放、聊天室、语聊房、视频直播、语音电台、音视频通话等开箱即用的 UI 解决方案。

这是融云在封装最佳行业实践推出第三代场景化 SDK,改变行业供给旧范式之后,进一步服务行业,回馈社区的关键之举。期待收到更多开发者的反馈,共同推进行业发展。


融云场景化组件开源欢迎开发者使用和反馈


1. 场景化音乐播放组件


场景化音乐 Kit 是融云为开发者提供的开源项目,适用于语聊房、电台房、视频直播等常见社交场景。Kit 封装了音乐播放列表、音乐库列表、音量控制、氛围控制等常见 UI 组件。开发者只需提供音乐数据源并且根据相关回调设置 RTC 相关控制,即可快速实现房间内音乐播放等功能。

场景化组件开源,融云持续回馈开源生态_ios_02

(融云场景化音乐播放组件)

功能组件


① 音乐播放列表

音乐列表提供了常见的音乐播放、暂停、置顶、删除等逻辑及 UI 功能展示,开发者可以根据回调执行相应的混音操作或播放器播放操作即可。

播放/暂停:点击音乐条目可执行播放和暂停的回调,开发者可以控制房间内的音乐混音的开始和暂停逻辑。

置顶:每个音乐条目后面有置顶按钮,开发者可点击置顶,把想要置顶的音乐移动到正在播放的音乐的下方。

删除:每个音乐条目后面有删除按钮,可以把该音乐移除播放列表。

② 音乐库

音乐库列表提供了常见的音乐添加、搜索、分页加载等逻辑及 UI 功能展示,开发者可以根据回调提供相应的数据即可正常显示。

分类展示:可按照歌曲分类展示不同的音乐列表。

列表展示:音乐列表按照开发者提供的音乐数据做展示,支持添加到播放列表功能,分页加载功能,本地上传功能(上传后添加到播放列表)。

搜索歌曲:输入想搜索的歌曲,点击搜索后,会回调音乐搜索的接口,开发者只需在自己的曲库中做搜索然后把数据传递给列表即可展示搜索结果。

③ 音量控制

音乐控制提供了常见的房间内音量控制,包括本端音量、远端音量、麦克风音量、混音等功能,开发者可以根据回调操作具体的音量设置。

本端音量:一般指主播端播放的音量,可以根据回调设置本端音量。

远端音量:一般指观众端播放的音量,可以根据回调设置远端音量。

麦克风音量:一般指主播端说话时麦克风传入的音量,可以根据回调设置麦克风音量。

耳返:一般指主播端戴耳机的情况下,是否开启耳机耳返功能,可以根据回调控制。

④ 氛围控制

氛围控制提供了一些进场氛围音效管理,开发者可以根据自己业务需求定制一些进场音效,根据数据回调返回 UI 层做展示,当点击相应的氛围时,调用 RTC 相应的氛围播放 API。


特性

集成简单:用户只需要依赖远端仓库或开源项目的源码即可快速使用。

功能完善:常见的播放列表、音乐库、音量控制、氛围控制等一应俱全,用户可根据自身需要做增加或删减。

可定制化:在源码的基础上,用户可以根据自己业务需求改动相应代码即可快速定制化。

可用性强:用户只需关心数据源和相应的操作回调,内部没有封装 RTC 任何逻辑,根据回调调用相应 RTC 的 API 即可。

地址

Android: https://github.com/rongcloud-community/rongcloud-scene-musiccontrolkit-android

iOS: https://github.com/rongcloud-community/rongcloud-scene-musiccontrolkit-ios


2. 场景化聊天室组件

RCChatroomSceneKit 是一组包含消息列表、底部工具栏、输入框的 UI 组件,可广泛用于即时通讯、语聊房、视频直播、实时社区等应用里的聊天交互模块,支持 iOS/Android 两个端。


功能组件

RCChatroomSceneKit 主要有三大组件:

① 消息列表

常显示在直播间等界面左下部分,显示公屏消息、观众评论、礼物通知等,消息样式可灵活自定义。

② 底部工具栏

显示在最底部,常见形式是左边一个输入框,右边为一组按钮均匀排列,使用者可自由定义按钮功能样式。

③ 键盘联动输入框

由底部工具栏左边输入框点击唤起,随着系统键盘升起/消失。支持多行输入,文字段落动态滚动。


特性

  • API 设计精简极致,易用,上手快。

  • 丰富的扩展接口,尽可能满足开发者多种需求,如消息体样式、工具栏按钮等均可自定义。

  • 支持 JSON 配置文件自定义 UI 样式属性,让开发者有美工一样的体验。


地址

Android: https://github.com/rongcloud-community/rongcloud-scene-chatroomkit-android

iOS: https://github.com/rongcloud-community/rongcloud-scene-chatroomkit-ios


3. 场景化语聊房组件

RCSceneVoiceRoom 是根据主流语聊房场景开发设计的开源仓库,通过 RCVoiceRoomLib 提供的业务化接口,快速实现语聊房应用。包含房间管理、麦位管理、聊天室消息、赠送礼物、多人连麦等语聊房必备能力。

功能组件

RCSceneVoiceRoom 核心能力主要有:

① 多人连麦

房间内观众可以通过申请连麦、邀请连麦、自由上麦的方式进行连麦。

② 麦位管理

房主或管理员可以控制麦位闭麦和锁麦,也可以快速全量闭麦和锁麦。

③ 聊天室消息

显示在最底部,房间内用户可以发送文字、表情、语音等类型消息,点击消息可以查看用户信息。

④ 赠送礼物

支持指定用户或全麦用户打赏,分为普通礼物和全服礼物,全服礼物在所有房间展示并支持跳转。

⑤ 音乐播放

房主可以通过混音模式播放音乐,支持音乐收藏、搜索、分类、浮窗、音量控制、耳返等功能。

特性

  • 简洁:移动端只需一行代码即可接入语聊房功能,开发者不需要花费太长的时间学习,不用关心内部实现,只需对接简单的接口和抽象的回调。

  • 稳定:语聊房组件提供了稳定的业务能力。API 的设计更抽象化,除非特殊情况,接口不会更改,更多的是对接口能力的扩展。所有功能都经过严格测试,确保在运行期间的稳定。

  • 丰富:语聊房组件覆盖全部主流业务功能,提供一套完整的 UI 设计,并将不断更新依赖组件,如礼物动效、更多类型的麦位布局等。

地址

Android: https://github.com/rongcloud-community/rongcloud-scene-voice-room-android

iOS: https://github.com/rongcloud-community/rongcloud-scene-voice-room-ios


4. 场景化视频直播组件

RCSceneVideoRoom 是基于 RCLiveVideoLib 快速实现的视频直播场景化组件。

开发者可以在移动端通过一行代码实现视频直播场景;视频直播通过 RCLiveVideoLib 的内置布局和自定义布局实现了快速切换连麦布局的功能,涵盖绝大多数主流业务场景的布局方式;包含房间管理、麦位管理、聊天室消息、赠送礼物、多人连麦、跨房间 PK 等社交娱乐场景必备的能力。

地址

Android: https://github.com/rongcloud-community/rongcloud-scene-video-room-android

iOS: https://github.com/rongcloud-community/rongcloud-scene-video-room-ios


5. 场景化语音电台组件

RCSceneRadioRoom 是对 IM 和 RTC 的能力在语音电台场景的快速实现,通过使用 CDN 推拉流的技术,实现单主播语音直播,不限观众收听。在语音电台场景配置了聊天室消息、赠送礼物、音乐播放等功能。

地址

Android: https://github.com/rongcloud-community/rongcloud-scene-radio-room-android

iOS: https://github.com/rongcloud-community/rongcloud-scene-radio-room-ios


6. 场景化音视频通话组件

RCSceneCall 是基于融云 RCCallLib 对于呼叫场景的完整封装,支持常规的单人音频和视频呼叫,并增加了拨号键盘和拨号记录等业务功能。

地址

Android: https://github.com/rongcloud-community/rongcloud-scene-call-android

iOS: https://github.com/rongcloud-community/rongcloud-scene-call-ios


开源、协作有效提升数字世界生产力


在当代社会严密的商业秩序之下,开源保留着互联网精神最初的美好——共享、公开,让信息更容易获取、更加自由。开源的驱动力本身就凝聚了工程师的这种理想主义情结,也构成和代表着互联网的开放精神内核:我为人人,人人为我

“当你基于自己的积累对一个问题有了更好的解决方案,难免手痒想要分享给其他人。”这是选择开源的大部分工程师的出发点,继而基于社区的反馈和用户的共建,打造活跃而广泛的生态,促进项目的高速、可持续发展,改进和完善项目。

经过了二十几年的发展,开源产业越来越成熟,进入高速发展期,越来越多公司加入开源共建。

根据 GitHub 数据,2021 年 GitHub 新增活跃用户数超过 1600 万,新增活跃代码仓库数量超过 6100 万。

在国内,对开源的关注首先表现在国家战略层的重视上。“十四五”规划明确写到支持开源社区发展,鼓励企业开放软件源代码,开源成为促进我国数字经济发展的一项重要策略。开放原子开源基金会的注册成立也是国内开源产业成熟的一个标志性事件,开源迎来了一个前所未有的好时期。

GitHub 数据显示,中国开发者已达 755万+,数量排名第二。

开源对软件开发最直接的意义,在于提高生产力。一方面是基于前人的成果继续创新,“不要重复造轮子”;另一方面是通过共建共同推进领域发展。

在“一切为了开发者”的发展宗旨下,融云的使命之一就是帮助开发者更加多、快、好、省地完成软件开发和业务实现。开源也是融云工程师文化的一部分,8 年来,在 IM 即时通讯和 RTC 实时音视频技术持续精进和引领行业的过程中,融云不断抽取典型用例进行开源。

随着语聊房、直播等线上娱乐产业的发展,融云的通信云服务在社交、泛娱乐、游戏等领域遍地开花,并不断积累垂直行业经验。在服务开发者的过程中,融云抽取最佳实践推出第三代场景化 SDK,支持开发者开箱即用地研发语聊房、直播、音视频通话等应用。

疫情之下,泛娱乐社交市场需求空前,市场上出现了大量相关产业软件开发人员,他们需要更多的技能、用例和工具。

融云将陆续开源全套内嵌业务逻辑的体系化组件,免去开发者们对一些通用组件的重复开发,需要解决类似问题的开发者可以直接使用,从而得以将精力集中在其他更有价值和创意的方向。

在由软件构筑的数字世界中,开源是提高人类共同生产力的有效协作方式。未来,融云场景化还将开源礼物、麦位管理等核心组件,持续为行业贡献自己在具体领域的成熟解决方案,拓宽技术的应用领域,为外部需求贡献的同时也让自身技术在更多用例的反馈下更加成熟,走向社区、共建生态。