简介
实时视频+游戏操作是非常不错的娱乐体验方式,结合物联网设备可以开发诸如:远程抓娃娃、远程打气球、打野兔、射箭等项目。
NodePlayer.js-wasm版可以非常方便的集成到最新的白鹭引擎(v5.3以上)中使用,以下是我们总结的一个集成方法。
一、准备工作
1.NodePlayer.js wasm版
2.白鹭引擎 v5.3.8
3.Egret Compiler
4.Egret Wing 3
二、创建并打开工程
三、在工程目录下的libs目录下创建NodePlayer文件夹,并将开发包或授权包内的 NodePlayer.d.ts , NodePlayer.min.js, NodePlayer.min.wasm 三个文件拷贝到该文件夹下。复制NodePlayer.min.js并改名为NodePlayer.js 。
四、在Egret Wing编辑器中打开egretProperties.json,添加一个module
{ "name": "NodePlayer",
"path": "./libs/NodePlayer"
}
1
{"name":"NodePlayer",
"path":"./libs/NodePlayer"
}
五、编译模块
在Egret Wing中打开终端,输入
egret build -e
1
egretbuild-e
这时候可以打开manifest.json,可以看到已自动加入了一行
"libs/NodePlayer/NodePlayer.js"
1
"libs/NodePlayer/NodePlayer.js"
六、修改index.html模板文件
打开 template/web/index.html,在div中添加
<canvas id="video" style="margin: auto;width: 100%;height: 100%;" />
1
<canvasid="video"style="margin: auto;width: 100%;height: 100%;"/>
七、编写代码, 打开/src/Main.ts
1. 初始化播放器
在函数
private async runGame() {
1
privateasyncrunGame(){
中添加
await NodePlayer.asyncLoad()
1
awaitNodePlayer.asyncLoad()
2.创建播放实例
private textfield: egret.TextField; private player : NodePlayer;
/**
* 创建场景界面
* Create scene interface
*/
protected createGameScene(): void {
this.player = new NodePlayer()
this.player.setView("video");
this.player.setScaleMode(2);
let stageW = this.stage.stageWidth;
let stageH = this.stage.stageHeight;
//将背景图注释,避免图片盖住视频
// let sky = this.createBitmapByName("bg_jpg");
// this.addChild(sky);
// sky.width = stageW;
// sky.height = stageH;
1
privatetextfield:egret.TextField;privateplayer:NodePlayer;
/**
* 创建场景界面
* Create scene interface
*/
protectedcreateGameScene():void{
this.player=newNodePlayer()
this.player.setView("video");
this.player.setScaleMode(2);
letstageW=this.stage.stageWidth;
letstageH=this.stage.stageHeight;
//将背景图注释,避免图片盖住视频
// let sky = this.createBitmapByName("bg_jpg");
// this.addChild(sky);
// sky.width = stageW;
// sky.height = stageH;
3.在按键事件处理中播放视频
/** * 点击按钮
* Click the button
*/
private onButtonClick(e: egret.TouchEvent) {
this.player.start("http://flv.bdplay.nodemedia.cn/live/bbb.flv");
}
1
/** * 点击按钮
* Click the button
*/
privateonButtonClick(e:egret.TouchEvent){
this.player.start("http://flv.bdplay.nodemedia.cn/live/bbb.flv");
}
八、编译运行项目
编译成功后会自动弹出浏览器打开。
点击Click!按钮,视频开始播放
九、发布项目
编译成功后打开目录,手动将NodePlayer.min.wasm拷贝到js目录下
将发布版文件用web_server发布,使用浏览器打开,播放正常。
十、Demo项目源码