之前我们就分享过,java可以应用很多领域,方便大家的生活,比如游戏、网页等都是可以用java做的,当然java也可以做直播,那java如何做直播?下面来我们就来给大家讲解一下java做直播的方法。
一、架构设计
秀场直播场景的主要架构如下图所示:(以两主播连麦互动为例)
二、功能实现流程
1、主播、观众均通过业务信令服务连接,业务信令服务可以控制当前业务房间内的直播流程,同步并通知各端当前直播状态更新。
2、当为单主播模式时,主播直接向 CDN 推流,观众直接从 CDN 拉流。
3、当要进入连麦互动时,业务信令服务通知连麦者房间内的成员连麦者的信息。
4、连麦者双方接收到信息后,各自停止向 CDN 推流,同时开始推流到 ZEGO 服务器,并拉连麦对方的音视频流。
5、在推拉流的同时,需要启动 ZEGO 混流服务,将连麦者推流到 ZEGO 服务器的多路连麦流混合成一条,再转推到原来的 CDN 地址。(如果连麦者双方混流配置需求不同,则需要双方各启动一条混流,如需要本房间主播画面在左边,对方在右边)
6、观众不需要切换 CDN 拉流地址,即可看到连麦互动画面。
7、业务信令服务通知所有人连麦互动结束,主播停止推流到 ZEGO 服务器并停止 ZEGO 混流服务,重新向 CDN 推单流。
所以,API 大致使用流程如下:(单主播模式以 Express Video SDK 直推 CDN 为例,连麦互动以两位主播 PK 为例)。
2.1 初始化 SDK
在使用 Express Video SDK 进行视频通话之前,需要初始化Express Video SDK。由于初始化操作 SDK 内部处理的操作较多,建议开发者在 App 启动的时候进行。
2.2 登录直播房间
主播开始直播或观众观看直播前,需要先登录到直播房间,在收到登录房间成功的回调之后可以直接调用 Express Video SDK的接口进行推拉流操作。
2.3 单主播直播
当为单主播模式时,主播直接向 CDN 推流,观众直接从 CDN 拉流。
2.3.1 主播开始预览并直推 CDN
主播直接向 CDN 推送自己的画面,需要配置直推 CDN 设置接口,然后开始预览并推流。
2.3.2 观众拉流
观众想接收主播的音视频,需指定 CDN 地址拉流(即观看直播)。
2.4 互动连麦
2.4.1 功能介绍
由于 CDN 推拉流延迟较高,所以为了保证连麦双方的最佳体验,需要连麦者向 ZEGO 服务器推拉流进行低延迟连麦。收到开始互动连麦消息后,主播停止向 CDN 推流,转而向 ZEGO 服务器推流,并且拉连麦者流,开启混流服务转推指定 CDN 地址。
2.4.2 停止直推 CDN 并向 ZEGO 服务器推流
主播停止向 CDN 推流,转而向 ZEGO 服务器推流
2.4.3 拉连麦者音视频流
主播需要从 ZEGO 服务器直接拉连麦者音视频流。
2.4.4 开启混流
开启混流后,Zego 服务器会将多路单独的音视频流混成一路音视频流,并转推到主播原 CDN 推流地址,这样观众即可不中断拉流就看到互动连麦画面。
2.5 互动连麦结束
互动连麦结束后,需要切换回单主播推流模式。
主播需要先停止混流、推流,然后再重新直推 CDN 即可。
大家想用java做直播,可以按照以上的方法思路走,现如今直播行业很火热,能够给大家带来更多的经济利益,看来用java做直播是很有必要的。最后大家如果想要了解更多java实例知识,敬请关注奇Q工具网。
推荐阅读:
Java原子类AtomicInteger实现原理是什么?原理讲解