Skip to content

[SE] 电商直播 #3023

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions markdown/Live-stream Shopping/api-sequence-ios.wsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
@startuml
autonumber
title 电商直播 API 调用时序图
participant "声网 RTC SDK" as sdk
participant "电商直播 App" as app #White
participant "声网云服务\n(SyncManager)" as cloud
app -> cloud: 获取房间列表
activate cloud
cloud -->> app: 显示房间列表
deactivate cloud
== 创建直播间以本地预览直播 ==
app -> sdk: sharedEngineWithConfig
app -> sdk: setupLocalVideo
app -> sdk: startPreview
app -> cloud: 创建房间
activate cloud
cloud -->> app: 创建房间成功
deactivate cloud
app -> sdk: stopPreview
app -> sdk: destory
== 加入直播间 ==
app -> cloud: 加入房间
activate cloud
cloud -->> app: 加入房间成功
deactivate cloud
app -> cloud: 订阅收到礼物事件
app -> cloud: 订阅聊天消息事件
app -> cloud: 订阅用户加入和退出直播间事件
app -> cloud: 订阅 PK 连麦邀请事件
app -> sdk: sharedEngineWithConfig
app -> sdk: enableVideo
app -> sdk: setupLocalVideo(主播调用)
app -> sdk: setupRemoteVideo(观众调用)
app -> sdk: joinChannelByToken
sdk --> app: didJoinChannel
== 上架/下架商品 ==
app -> cloud: 上架商品
app -> cloud: 下架商品
cloud --> app: 商品上架通知
cloud --> app: 商品下架通知
== 主播 PK 连麦 ==
app -> cloud: 主播 A 发起 PK
cloud --> app: 主播 B 收到 PK 邀请
app -> cloud: 主播 B 接受 PK 邀请
cloud --> app: 主播 A 和主播 B 开始 PK
app -> sdk: joinChannelExByToken(主播和观众加入对方主播房间)
sdk --> app: didJoinedOfUid
app -> sdk: setupRemoteVideoEx(主播和观众渲染对方主播的视频)
app -> cloud: 主播 A 和主播 B 结束 PK
cloud --> app: 主播 A 和主播 B 结束 PK
app -> sdk: leaveChannelEx(主播和观众退出对方频道)
== 退出直播间 ==
app -> cloud: 主播退出房间
activate cloud
cloud --> app: 通知所有观众房间已关闭
deactivate cloud
app -> cloud: 观众退出房间
activate cloud
cloud --> app: 通知所有观众和主播房间内减少 1 名用户
deactivate cloud
app -> sdk: leaveChannel
app -> sdk: destroy
@enduml
63 changes: 63 additions & 0 deletions markdown/Live-stream Shopping/api-sequence.wsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
@startuml
autonumber
title 电商直播 API 调用时序图
participant "声网 RTC SDK" as sdk
participant "电商直播 App" as app #White
participant "声网云服务\n(SyncManager)" as cloud
app -> cloud: 获取房间列表
activate cloud
cloud -->> app: 显示房间列表
deactivate cloud
== 创建直播间以本地预览直播 ==
app -> sdk: create
app -> sdk: setupLocalVideo
app -> sdk: startPreview
app -> cloud: 创建房间
activate cloud
cloud -->> app: 创建房间成功
deactivate cloud
app -> sdk: stopPreview
app -> sdk: destory
== 加入直播间 ==
app -> cloud: 加入房间
activate cloud
cloud -->> app: 加入房间成功
deactivate cloud
app -> cloud: 订阅收到礼物事件
app -> cloud: 订阅聊天消息事件
app -> cloud: 订阅用户加入和退出直播间事件
app -> cloud: 订阅 PK 连麦邀请事件
app -> sdk: create
app -> sdk: enableVideo
app -> sdk: setupLocalVideo(主播调用)
app -> sdk: setupRemoteVideo(观众调用)
app -> sdk: joinChannel
sdk --> app: onJoinChannelSuccess
== 上架/下架商品 ==
app -> cloud: 上架商品
app -> cloud: 下架商品
cloud --> app: 商品上架通知
cloud --> app: 商品下架通知
== 主播 PK 连麦 ==
app -> cloud: 主播 A 发起 PK
cloud --> app: 主播 B 收到 PK 邀请
app -> cloud: 主播 B 接受 PK 邀请
cloud --> app: 主播 A 和主播 B 开始 PK
app -> sdk: joinChannelEx(主播和观众加入对方主播房间)
sdk --> app: onUserJoined
app -> sdk: setupRemoteVideoEx(主播和观众渲染对方主播的视频)
app -> cloud: 主播 A 和主播 B 结束 PK
cloud --> app: 主播 A 和主播 B 结束 PK
app -> sdk: leaveChannelEx(主播和观众退出对方频道)
== 退出直播间 ==
app -> cloud: 主播退出房间
activate cloud
cloud --> app: 通知所有观众房间已关闭
deactivate cloud
app -> cloud: 观众退出房间
activate cloud
cloud --> app: 通知所有观众和主播房间内减少 1 名用户
deactivate cloud
app -> sdk: leaveChannel
app -> sdk: destroy
@enduml
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ updatedAt: 2020-11-12 11:05:04

Agora 为电商直播提供如下平台的 Demo,扫描下方二维码下载应用。

| Android | iOS |
| Android | iOS |
| ---------------- | ---------------- |
|[前往下载](./downloads?platform=Android) | [前往下载](./downloads?platform=iOS) |
|[前往下载](./downloads?platform=Android) | [前往下载](./downloads?platform=iOS) |


由于电商直播场景涉及多个用户,我们建议你准备**两台**设备进行体验。完成下载和安装后,参考如下步骤试用 Agora 的电商直播。
Expand Down
32 changes: 32 additions & 0 deletions markdown/Live-stream Shopping/fragment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
**超低延时**

声网 SD-RTN™ 网络节点覆盖全球 200 多个国家和地区,通过就近接入、智能路由等控制策略,保证全球平均端到端延时 < 400 ms。

**稳定可靠**

提供 SLA 质量保证,登录成功率 > 99%,全年可用时间高达 99.99%。

**极致弱网对抗能力**

业界领先的弱网对抗算法,保证在 70% 丢包情况下,音视频通话流畅;70% 丢包情况下,音频通话流畅,真正做到低卡顿、不掉线。

当用户网络带宽不足时,声网的网络自适应策略可以实现音频优先、主播优先。

**高音质**

支持 48 kHz 全频带采样,业界领先的 3A 算法(回声消除、噪声抑制、自动增益),在嘈杂环境下也能保持语音清澈,提供高品质的互动体验。

**高清画质**

支持 1080P 高清视频体验。支持 H.265、超分辨率和感知视频编码,在同等分辨率、帧率情况下,视频占有带宽更低,画质体验更好。

**支持第三方服务**

你可以搭配使用第三方服务,在项目中实现鉴黄、美颜、AR 等功能,提供更丰富好玩的视频直播场景。

**质量透明可溯**

声网通过如下接口及产品,保障实时音视频的质量:

- 完整的通话质量回调,排除潜在问题,扫清互动障碍;
- [水晶球](https://console.agora.io/analytics/call/search)工具,显示端到端全链路的质量监控数据,直播过程可追溯,提供用户行为、运行状态、QoE/QoS 的质量数据,帮助排查定位问题。
Loading