目前,相比 Java、C++等开发语言,用 PHP 做直播开发的相对较少。但也有不少开发者会有这方面的需求,ZEGO 提供了两种 SDK 可实现 PHP 直播功能。
第一种:使用互动直播 UIKit 实现PHP直播
ZEGO 的互动直播 UIKit(自定义 UI 的直播场景化 SDK)全部由 JavaScript 编写,并获得 Web 浏览器的原生支持,因此如果您使用的是 JQuery、PHP 或 JSP,可以参考使用 HTML 脚本接入。接入步骤如下:
准备环境
在开始集成互动直播 UIKit 前,请确保开发环境满足以下要求:
- Windows 或 macOS 开发电脑已经连接到 Internet。
- 满足 ZEGO SDK 兼容性的浏览器,推荐使用最新版本的 Google Chrome 浏览器。
前提条件
- 已在ZEGO 控制台创建项目,并申请有效的 AppID 和 AppSign,详情请参考控制台 – 项目信息。
- 联系 ZEGO 技术支持,开通 UIKit 相关服务。
快速开始
1. 首先生成一个Kit Token。
计划正式上线应用时,请参考此步骤生成 Kit Token。如果您想加快集成测试,可以先 跳过这一步
。
2. 在以下代码中将 appID
和 serverSecret
参数替换为您从管理控制台获取的项目 AppID 和 ServerSecret。
<span><</span>html<span>></span>
<span><</span>head<span>></span>
<span><</span>style<span>></span>
#root {
width: 100vw;
height: 100vh;
}
<span><</span>/style<span>></span>
<span><</span>/head<span>></span>
<span><</span>body<span>></span>
<span><</span>div id="root"<span>></span> <span><</span></div<span>></span>
<span><</span>/body<span>></span>
<span><</span>script src="https://unpkg.com/@zegocloud/zego-uikit-prebuilt/zego-uikit-prebuilt.js"<span>></span> <span><</span>/script<span>></span>
<span><</span>script<span>></span>
function getUrlParams(url) {
let urlStr = url.split('?')[1];
const urlSearchParams = new URLSearchParams(urlStr);
const result = Object.fromEntries(urlSearchParams.entries());
return result;
}
// 通过调用方法生成 Kit Token。
// @param 1: appID
// @param 2: serverSecret
// @param 3: 房间 ID
// @param 4: 用户 ID
// @param 5: 用户名
const appID = ;
const serverSecret = "";
const roomID = ;
const userID = Math.floor(Math.random() * 10000) + "";
const userName = "userName" + userID;
const kitToken = ZegoUIKitPrebuilt.generateKitTokenForTest(appID, serverSecret, roomID, userID, userName);
// 您可以根据 URL 参数分配不同的角色。
let role = getUrlParams(window.location.href)['role'] || 'Host';
role = role === 'Host' ? ZegoUIKitPrebuilt.Host : ZegoUIKitPrebuilt.Audience;
const zp = ZegoUIKitPrebuilt.create(kitToken);
zp.joinRoom({
container: document.querySelector("#root"),
scenario: {
mode: ZegoUIKitPrebuilt.LiveStreaming,
config: {
role,
},
},
sharedLinks: [{
name: '作为观众加入',
url:
window.location.protocol + '//' +
window.location.host + window.location.pathname +
'?roomID=' +
roomID +
'&role=Audience',
}],
// 设置语言为中文
language: "zh-CN",
});
<span><</span>/script<span>></span>
<span><</span>/html<span>></span>
两步即可接入。当然这里会涉及一些认证,Kit Token 鉴权以及自定义调整参数等,详细请参考:接入文档。
第二种:使用 ZEGO Web SDK 实现PHP直播
ZEGO Web SDK 是一款实时的音视频互动服务产品,可实现低至 200 ms 的端到端平均时延,完美支持一对多、多对多的实时音视频通话、直播、会议等场景。
跟第一种方式类似,通过使用 HTML 脚本接入 SDK 来实现。
接入 SDK 方式有两种,使用 npm 方式集成和从官网下载 SDK 手动集成。我们这里介绍 npm 方式集成:
1. 下载并安装 Node.js 和 npm。
2. 新建项目,创建一个文件夹作为基础音视频通话的项目文件夹,结构类似如下:
├── index.html
├── index.js
3. 将以下代码拷贝到 “index.html” 文件中。
<span><</span>html<span>></span>
<span><</span>head<span>></span>
<span><</span>meta charset="UTF-8"<span>></span>
<span><</span>title<span>></span> Zego Express Video Call<span><</span>/title<span>></span>
<span><</span>style type="text/css"<span>></span>
* {
font-family: sans-serif;
}
h1,
h4 {
text-align: center;
}
#local-video, #remote-video {
width: 400px;
height: 300px;
border: 1px solid #dfdfdf;
}
#local-video {
position: relative;
margin: 0 auto;
display: block;
}
#remote-video {
display: flex;
margin: auto;
position: relative !important;
}
<span><</span>/style<span>></span>
<span><</span>/head<span>></span>
<span><</span>body<span>></span>
<span><</span>h1<span>></span>
Zego RTC Video Call
<span><</span>/h1<span>></span>
<span><</span>h4<span>></span>Local video<span><</span>/h4<span>></span>
<span><</span>div id="local-video"><span><</span>/div<span>></span>
<span><</span>h4<span>></span>Remote video<span><</span>/h4<span>></span>
<span><</span>div id="remote-video"<span>></span><span><</span>/div<span>></span>
<span><</span>script src="index.js"<span>></span><span><</span>/script<span>></span>
<span><</span>/body<span>></span>
<span><</span>/html<span>></span>
4. 通过 npm 安装 SDK。
在终端中,cd 到 ”index.js“ 文件所在的文件夹,执行 npm i zego-express-engine-webrtc
命令安装依赖。
- npm 下载包支持 typescript 语言(推荐)。
- 如果在 macOS 或 Linux 系统中执行 npm 命令失败,提示 “permission denied”,请在 npm 命令前加上
sudo
重新执行即可。
5. 在 “index.js” 文件中引入 SDK。
完整集成 SDK 或单独集成功能模块,请参考开发文档。
6. 集成 SDK 后,即可开始实现音视频通话功能,完整文档请参考:实现视频通话
通过以上两种方式,可以轻松实现PHP直播功能。如果在接入过程中有任何问题,欢迎联系我们的售前和技术支持👇
原创文章,作者:ZEGO即构科技,如若转载,请注明出处:https://market-blogs.zego.im/reports-baike/1791/