为了与框架快速初始连接,我们建议运行演示应用程序并观察客户端和服务器之间的WebSocket消息交换。
目前,该演示仅支持Ubuntu 14.04 LTS 64位。
功能
这个名为 kurento-room-demo 的项目包含Rooms API的客户端实现(HTML,JavaScript,图形资源),并嵌入房间服务器以提供群组通信所需的功能(所谓的房间)。
SpringBoot框架,它启动kurento-room-server模块的主要应用程序,通过WebSocket接口公开房间API。
客户端部分已经使用AngularJS和lumX实现,客户端主要使用room的JavaScript库(KurentoRoom.js)。
此应用程序允许Web客户端:
- 登录一个房间(创建房间,如果它不存在)
- 离开这个房间
- 发布其媒体流
- 静音他们的视频和/或音频
- 进入全屏
- 自动订阅在房间中发布的任何流,并在屏幕上播放(视频)和通过系统扬声器(音频)
- 取消订阅流
- 取消发布媒体
- 向其他对等体发送消息
- 在其发布的视频流上应用或移除媒体过滤器(使用在识别的人脸上添加帽子的面部覆盖过滤器)
- 从可用的缩略图中选择要在浏览器的较大区域中显示的视频源
运行Demo
git clone 教程后,可以使用Maven exec插件直接从终端执行。 为了确保演示可以正确构建和执行,在继续构建之前先checkout出一个稳定的发行版(或标签)(防止丢失依赖项,因为Kurento master是开发分支):
$ git clone https://github.com/Kurento/kurento-room.git
$ cd kurento-room
# checkout the latest tag
$ git checkout $(git describe --abbrev=0 --tags)
$ cd kurento-room-demo
$ mvn compile exec:java
现在在WebRTC兼容的浏览器中打开以下URL,并通过提供所需的用户名和房间名称连接到新房间:https://localhost:8443。
修改demo的配置文件
有几个选项或属性可能需要修改,以使演示正常运行。
修改上述演示的执行中使用的属性文件kurento-room-demo.conf.json,位于文件夹src/main/resources中,其内容如下:
{
"kms": {
"uris": ["ws://localhost:8888/kurento", "ws://127.0.0.1:8888/kurento"]
},
"app": {
"uri": "https://localhost:8443/"
},
"kurento": {
"client": {
//milliseconds
"requestTimeout": 20000
}
},
"demo": {
//mario-wings.png or wizard.png
"hatUrl": "mario-wings.png",
"hatCoords": {
// mario-wings hat
"offsetXPercent": -0.35F,
"offsetYPercent": -1.2F,
"widthPercent": 1.6F,
"heightPercent": 1.6F
//wizard hat
//"offsetXPercent": -0.2F,
//"offsetYPercent": -1.35F,
//"widthPercent": 1.5F,
//"heightPercent": 1.5F
},
"loopback" : {
"remote": false,
//matters only when remote is true
"andLocal": false
},
"authRegex": ".*",
"kmsLimit": 1000
}
}
启动演示服务器时,可以在命令行上覆盖这些属性:
$ mvn compile exec:java -Dkms.uris=[\"ws://192.168.1.99:9001/kurento\"]
在本示例中,我们已指示出在创建 Room API 所需的 KurentoClient 时使用运行的KMS实例的不同URI。
有关演示配置和执行的更多详细信息,请参阅部署部分。