From cf871d524c117504e18b266cfb242c33f64808fd Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Wed, 27 Mar 2024 16:07:23 +0800 Subject: [PATCH 01/14] 1 --- sdk/demo/demo.html | 1 - sdk/index.html | 999 ------------------------------------------ sdk/package.json | 3 +- sdk/webpack.config.js | 2 +- sdk/webpack.dev.js | 37 +- 5 files changed, 18 insertions(+), 1024 deletions(-) delete mode 100644 sdk/index.html diff --git a/sdk/demo/demo.html b/sdk/demo/demo.html index ece9042..925923e 100644 --- a/sdk/demo/demo.html +++ b/sdk/demo/demo.html @@ -450,7 +450,6 @@ Copyright 2022 Huawei Cloud Computing Technology Co., Ltd. - - - - - - diff --git a/sdk/package.json b/sdk/package.json index ac5963d..d3968af 100644 --- a/sdk/package.json +++ b/sdk/package.json @@ -5,7 +5,7 @@ "main": ".eslintrc.js", "scripts": { "build": "webpack --config webpack.config.js", - "dev": "webpack --config webpack.dev.js --mode development --progress --colors --watch", + "dev": "webpack-dev-server --config webpack.dev.js --progress", "server": "webpack-dev-server", "eslint": "eslint src/** *.js -f html -o eslint-report.html", "esfix": "eslint src/** *.js --fix", @@ -44,6 +44,7 @@ "typescript": "^3.8.3", "webpack": "^4.41.5", "webpack-cli": "^3.3.11", + "webpack-dev-server": "^3.11.0", "webpack-merge": "^4.2.1" }, "author": "" diff --git a/sdk/webpack.config.js b/sdk/webpack.config.js index e46dd27..0172ff0 100644 --- a/sdk/webpack.config.js +++ b/sdk/webpack.config.js @@ -105,7 +105,7 @@ module.exports = { new HtmlWebpackPlugin({ template: 'demo/demo.html', filename: path.join(__dirname, '/dist/demo.html'), - inject: false + inject: 'head' }), new HtmlWebpackPlugin({ template: 'phone.html', diff --git a/sdk/webpack.dev.js b/sdk/webpack.dev.js index f211b7d..b8f949c 100644 --- a/sdk/webpack.dev.js +++ b/sdk/webpack.dev.js @@ -28,6 +28,9 @@ module.exports = { 'node_modules' ] }, + devServer: { + hot: true + }, resolveLoader: { modules: [ 'webpack-tools', @@ -63,30 +66,25 @@ module.exports = { '__APP_VERSION__': JSON.stringify(packageJSON.version), '__IS_DEBUG__': 'true' }), - new HtmlWebpackPlugin({ - template: 'index.html', - filename: path.join(__dirname, '/dist/index.html'), - inject: false - }), new HtmlWebpackPlugin({ template: 'login.html', - filename: path.join(__dirname, '/dist/login.html'), + filename: 'login.html', inject: false }), new HtmlWebpackPlugin({ template: 'enter.html', - filename: path.join(__dirname, '/dist/enter.html'), + filename: 'enter.html', inject: false }), new HtmlWebpackPlugin({ template: 'phone.html', - filename: path.join(__dirname, '/dist/phone.html'), + filename: 'phone.html', inject: false }), new HtmlWebpackPlugin({ template: 'demo/demo.html', - filename: path.join(__dirname, '/dist/demo.html'), - inject: false + filename: 'demo.html', + inject: 'head' }), new CopyWebpackPlugin([{ from: 'demo/demo.md', @@ -96,17 +94,13 @@ module.exports = { from: 'src/3rd/video-codec-lib/', to: path.join(__dirname, '/dist/lib'), force: true - }, { - from: 'images/mobileBg.png', - to: path.join(__dirname, '/dist/images/mobileBg.png'), - force: true },{ - from: 'images/ctrl_view.png', - to: path.join(__dirname, '/dist/images/ctrl_view.png'), + from: 'images/', + to: path.join(__dirname, '/dist/images/'), force: true },{ - from: 'style/common.css', - to: path.join(__dirname, '/dist/style/common.css'), + from: 'style/', + to: path.join(__dirname, '/dist/style/'), force: true },{ from: 'common.js', @@ -121,14 +115,13 @@ module.exports = { entry: { CloudApp: './src/CloudApp.js' }, - devtool: 'source-map', output: { libraryTarget: 'umd', library: '[name]', libraryExport: 'default', umdNamedDefine: true, - path: path.join(__dirname, '/dist/sdk'), - filename: '[name].min.js', - chunkFilename: '[name].bundle.js' + path: path.join(__dirname, '/dist/'), + filename: './sdk/[name].min.js', + chunkFilename: './sdk/[name].bundle.js' } }; -- Gitee From 9cfb78796232b80661d2991c2679736a6e6b2603 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Fri, 29 Mar 2024 10:25:09 +0800 Subject: [PATCH 02/14] 1 --- sdk/src/CPHCloudApp.js | 4 ++++ sdk/webpack.dev.js | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sdk/src/CPHCloudApp.js b/sdk/src/CPHCloudApp.js index 51d79c7..707c6fb 100644 --- a/sdk/src/CPHCloudApp.js +++ b/sdk/src/CPHCloudApp.js @@ -119,6 +119,10 @@ class CPHCloudApp { }); } + fullscreenToggle(fullscreenElementId) { + this.appController.fullscreenToggle(fullscreenElementId); + } + __defaultValidator (name, val, rule) { if (rule.startsWith('len')) { let subs = rule.split(':'); diff --git a/sdk/webpack.dev.js b/sdk/webpack.dev.js index b8f949c..74c411f 100644 --- a/sdk/webpack.dev.js +++ b/sdk/webpack.dev.js @@ -29,7 +29,9 @@ module.exports = { ] }, devServer: { - hot: true + hot: true, + open: true, // 自动打开浏览器 + openPage: 'http://localhost:8080/enter.html' // 默认打开的页面路径 }, resolveLoader: { modules: [ -- Gitee From 52df95575d639df71887131ee6e0f1139398bad9 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Fri, 29 Mar 2024 10:34:29 +0800 Subject: [PATCH 03/14] 1 --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5f4d77a..5e8dd05 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,8 @@    │ ├── Logger.js <日志>    │ ├── TouchHandler.js <触控>    │ └── Util.js <工具> -   └── index.html <测试页面> +   └── demo + ├──demo.html 测试页面 ``` #### 3.2 工程运行 @@ -54,7 +55,7 @@ npm run dev | 开发模式 npm run build | 生产模式 node package.js | 将产物输出为 tar.gz 包,放在 dist 目录下 ##### 3.2.2 开发测试 -(1)修改 index.html 中的接入地址等配置 +(1)修改 demo.html 中的接入地址等配置 (2)执行 npm run dev 命令 -- Gitee From 345f6dab4b0534a92adb422cdec97396dd4739b4 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Fri, 29 Mar 2024 10:38:11 +0800 Subject: [PATCH 04/14] 1 --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 5e8dd05..ec00040 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,6 @@ node package.js | 将产物输出为 tar.gz 包,放在 dist 目录下 (1)修改 demo.html 中的接入地址等配置 (2)执行 npm run dev 命令 - -(3)进入 dist 目录,通过index.html启本地server。 #### 3.3 产物下载 ```shell ## 可以直接下载本项目构建好的产物进行尝鲜使用,下载解压后,修改 demo.html 中 ip、port 即可连接 -- Gitee From c66a248ef9bd114d941112fa0b2cd390694800e1 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Wed, 27 Mar 2024 16:07:23 +0800 Subject: [PATCH 05/14] 1 1 1 1 --- README.md | 7 +- sdk/demo/demo.html | 1 - sdk/index.html | 999 ----------------------------------------- sdk/package.json | 3 +- sdk/src/CPHCloudApp.js | 4 + sdk/webpack.config.js | 2 +- sdk/webpack.dev.js | 39 +- 7 files changed, 27 insertions(+), 1028 deletions(-) delete mode 100644 sdk/index.html diff --git a/README.md b/README.md index 5f4d77a..ec00040 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,8 @@    │ ├── Logger.js <日志>    │ ├── TouchHandler.js <触控>    │ └── Util.js <工具> -   └── index.html <测试页面> +   └── demo + ├──demo.html 测试页面 ``` #### 3.2 工程运行 @@ -54,11 +55,9 @@ npm run dev | 开发模式 npm run build | 生产模式 node package.js | 将产物输出为 tar.gz 包,放在 dist 目录下 ##### 3.2.2 开发测试 -(1)修改 index.html 中的接入地址等配置 +(1)修改 demo.html 中的接入地址等配置 (2)执行 npm run dev 命令 - -(3)进入 dist 目录,通过index.html启本地server。 #### 3.3 产物下载 ```shell ## 可以直接下载本项目构建好的产物进行尝鲜使用,下载解压后,修改 demo.html 中 ip、port 即可连接 diff --git a/sdk/demo/demo.html b/sdk/demo/demo.html index ece9042..925923e 100644 --- a/sdk/demo/demo.html +++ b/sdk/demo/demo.html @@ -450,7 +450,6 @@ Copyright 2022 Huawei Cloud Computing Technology Co., Ltd. - - - - - - diff --git a/sdk/package.json b/sdk/package.json index ac5963d..d3968af 100644 --- a/sdk/package.json +++ b/sdk/package.json @@ -5,7 +5,7 @@ "main": ".eslintrc.js", "scripts": { "build": "webpack --config webpack.config.js", - "dev": "webpack --config webpack.dev.js --mode development --progress --colors --watch", + "dev": "webpack-dev-server --config webpack.dev.js --progress", "server": "webpack-dev-server", "eslint": "eslint src/** *.js -f html -o eslint-report.html", "esfix": "eslint src/** *.js --fix", @@ -44,6 +44,7 @@ "typescript": "^3.8.3", "webpack": "^4.41.5", "webpack-cli": "^3.3.11", + "webpack-dev-server": "^3.11.0", "webpack-merge": "^4.2.1" }, "author": "" diff --git a/sdk/src/CPHCloudApp.js b/sdk/src/CPHCloudApp.js index 51d79c7..707c6fb 100644 --- a/sdk/src/CPHCloudApp.js +++ b/sdk/src/CPHCloudApp.js @@ -119,6 +119,10 @@ class CPHCloudApp { }); } + fullscreenToggle(fullscreenElementId) { + this.appController.fullscreenToggle(fullscreenElementId); + } + __defaultValidator (name, val, rule) { if (rule.startsWith('len')) { let subs = rule.split(':'); diff --git a/sdk/webpack.config.js b/sdk/webpack.config.js index e46dd27..0172ff0 100644 --- a/sdk/webpack.config.js +++ b/sdk/webpack.config.js @@ -105,7 +105,7 @@ module.exports = { new HtmlWebpackPlugin({ template: 'demo/demo.html', filename: path.join(__dirname, '/dist/demo.html'), - inject: false + inject: 'head' }), new HtmlWebpackPlugin({ template: 'phone.html', diff --git a/sdk/webpack.dev.js b/sdk/webpack.dev.js index f211b7d..74c411f 100644 --- a/sdk/webpack.dev.js +++ b/sdk/webpack.dev.js @@ -28,6 +28,11 @@ module.exports = { 'node_modules' ] }, + devServer: { + hot: true, + open: true, // 自动打开浏览器 + openPage: 'http://localhost:8080/enter.html' // 默认打开的页面路径 + }, resolveLoader: { modules: [ 'webpack-tools', @@ -63,30 +68,25 @@ module.exports = { '__APP_VERSION__': JSON.stringify(packageJSON.version), '__IS_DEBUG__': 'true' }), - new HtmlWebpackPlugin({ - template: 'index.html', - filename: path.join(__dirname, '/dist/index.html'), - inject: false - }), new HtmlWebpackPlugin({ template: 'login.html', - filename: path.join(__dirname, '/dist/login.html'), + filename: 'login.html', inject: false }), new HtmlWebpackPlugin({ template: 'enter.html', - filename: path.join(__dirname, '/dist/enter.html'), + filename: 'enter.html', inject: false }), new HtmlWebpackPlugin({ template: 'phone.html', - filename: path.join(__dirname, '/dist/phone.html'), + filename: 'phone.html', inject: false }), new HtmlWebpackPlugin({ template: 'demo/demo.html', - filename: path.join(__dirname, '/dist/demo.html'), - inject: false + filename: 'demo.html', + inject: 'head' }), new CopyWebpackPlugin([{ from: 'demo/demo.md', @@ -96,17 +96,13 @@ module.exports = { from: 'src/3rd/video-codec-lib/', to: path.join(__dirname, '/dist/lib'), force: true - }, { - from: 'images/mobileBg.png', - to: path.join(__dirname, '/dist/images/mobileBg.png'), - force: true },{ - from: 'images/ctrl_view.png', - to: path.join(__dirname, '/dist/images/ctrl_view.png'), + from: 'images/', + to: path.join(__dirname, '/dist/images/'), force: true },{ - from: 'style/common.css', - to: path.join(__dirname, '/dist/style/common.css'), + from: 'style/', + to: path.join(__dirname, '/dist/style/'), force: true },{ from: 'common.js', @@ -121,14 +117,13 @@ module.exports = { entry: { CloudApp: './src/CloudApp.js' }, - devtool: 'source-map', output: { libraryTarget: 'umd', library: '[name]', libraryExport: 'default', umdNamedDefine: true, - path: path.join(__dirname, '/dist/sdk'), - filename: '[name].min.js', - chunkFilename: '[name].bundle.js' + path: path.join(__dirname, '/dist/'), + filename: './sdk/[name].min.js', + chunkFilename: './sdk/[name].bundle.js' } }; -- Gitee From fd932798da1a724e71e8bb4ccf3a957ec34979a2 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Tue, 2 Apr 2024 11:34:58 +0800 Subject: [PATCH 06/14] 1 --- sdk/demo/demo.html | 2 ++ sdk/src/AppController.js | 6 ++++++ sdk/src/CPHCloudApp.js | 4 ++++ sdk/src/CloudApp.js | 8 ++++++++ sdk/src/config/protocolConfig.js | 1 + 5 files changed, 21 insertions(+) diff --git a/sdk/demo/demo.html b/sdk/demo/demo.html index 925923e..7564ec3 100644 --- a/sdk/demo/demo.html +++ b/sdk/demo/demo.html @@ -881,6 +881,8 @@ Copyright 2022 Huawei Cloud Computing Technology Co., Ltd. try { CasCallback.startSuccessCallback(); } catch (error) {} + + cloudapp.requestIFrame(); } } diff --git a/sdk/src/AppController.js b/sdk/src/AppController.js index 5c5031c..b898128 100644 --- a/sdk/src/AppController.js +++ b/sdk/src/AppController.js @@ -1224,6 +1224,12 @@ class AppController { arrayBuf && this.send(arrayBuf); } + // 发送关键帧数 + requestIFrame() { + const arrayBuf = this.makeActionMsg('CMD_CONTROL', 'REQUEST_I_FRAME'); + arrayBuf && this.send(arrayBuf); + } + // 恢复样例 // 切换至home,暂停;60s内切回则发送恢复指令恢复,60s后切回,CAE清理资源,需要重新申请云手机 resumeCloudPhone() { diff --git a/sdk/src/CPHCloudApp.js b/sdk/src/CPHCloudApp.js index 707c6fb..d0d7988 100644 --- a/sdk/src/CPHCloudApp.js +++ b/sdk/src/CPHCloudApp.js @@ -123,6 +123,10 @@ class CPHCloudApp { this.appController.fullscreenToggle(fullscreenElementId); } + requestIFrame() { + this.appController.requestIFrame(); + } + __defaultValidator (name, val, rule) { if (rule.startsWith('len')) { let subs = rule.split(':'); diff --git a/sdk/src/CloudApp.js b/sdk/src/CloudApp.js index e118612..44a100d 100644 --- a/sdk/src/CloudApp.js +++ b/sdk/src/CloudApp.js @@ -18,6 +18,7 @@ import AppController from "./AppController"; class CloudApp { constructor(containerId, options) { this.channel = this._getChannel(containerId, options); + this.options = options } static isSupport() { @@ -52,6 +53,13 @@ class CloudApp { this.channel.reconnect(); } + requestIFrame() { + const channelType = this.options.channelType; + if (channelType === 'WebSocket') { + this.channel.requestIFrame(); + } + } + fullscreenToggle(fullscreenElementId) { this.channel.fullscreenToggle(fullscreenElementId); } diff --git a/sdk/src/config/protocolConfig.js b/sdk/src/config/protocolConfig.js index 8c7a2c8..5a5d8e0 100644 --- a/sdk/src/config/protocolConfig.js +++ b/sdk/src/config/protocolConfig.js @@ -79,6 +79,7 @@ const PROTOCOL_CONFIG = { RECONNECT: '3', PAUSE: '4', RESUME: '5', + REQUEST_I_FRAME: '6', SET_MEDIA_CONFIG: '7', }, CMD_RESULT: { -- Gitee From 695606d21c4a8fd640edfd0b2b7f36e1703f5784 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Tue, 2 Apr 2024 14:46:04 +0800 Subject: [PATCH 07/14] 1 --- sdk/demo/demo.html | 2 +- sdk/src/AppController.js | 5 ++++- sdk/src/CPHCloudApp.js | 1 + sdk/src/CloudApp.js | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/sdk/demo/demo.html b/sdk/demo/demo.html index 7564ec3..b758aed 100644 --- a/sdk/demo/demo.html +++ b/sdk/demo/demo.html @@ -881,7 +881,7 @@ Copyright 2022 Huawei Cloud Computing Technology Co., Ltd. try { CasCallback.startSuccessCallback(); } catch (error) {} - + console.log(1,'准备使用Iframe') cloudapp.requestIFrame(); } } diff --git a/sdk/src/AppController.js b/sdk/src/AppController.js index b898128..663981d 100644 --- a/sdk/src/AppController.js +++ b/sdk/src/AppController.js @@ -923,7 +923,9 @@ class AppController { */ makeActionMsg(msgType, msgCmd, params = {}) { const MSG_CMD_MAP = {...PROTOCOL_CONFIG.CMD_TYPE}; - + if(msgCmd === 'REQUEST_I_FRAME') { + console.log(5+'发送的命令是', MSG_CMD_MAP[msgCmd]) + } let msgBody = this.paramsSerialize({ command: MSG_CMD_MAP[msgCmd], ...params @@ -1226,6 +1228,7 @@ class AppController { // 发送关键帧数 requestIFrame() { + console.log(4, '已经发送Iframe') const arrayBuf = this.makeActionMsg('CMD_CONTROL', 'REQUEST_I_FRAME'); arrayBuf && this.send(arrayBuf); } diff --git a/sdk/src/CPHCloudApp.js b/sdk/src/CPHCloudApp.js index d0d7988..7b90cc8 100644 --- a/sdk/src/CPHCloudApp.js +++ b/sdk/src/CPHCloudApp.js @@ -124,6 +124,7 @@ class CPHCloudApp { } requestIFrame() { + console.log(3, '正在发送Iframe') this.appController.requestIFrame(); } diff --git a/sdk/src/CloudApp.js b/sdk/src/CloudApp.js index 44a100d..da3a560 100644 --- a/sdk/src/CloudApp.js +++ b/sdk/src/CloudApp.js @@ -56,6 +56,7 @@ class CloudApp { requestIFrame() { const channelType = this.options.channelType; if (channelType === 'WebSocket') { + console.log(2,'websocket情况下 准备使用Iframe') this.channel.requestIFrame(); } } -- Gitee From 5766e3924af7b5686fca4de376f075ebc31f0c5e Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Tue, 2 Apr 2024 16:00:11 +0800 Subject: [PATCH 08/14] 1 --- sdk/src/DirectionHandler.js | 52 ++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/sdk/src/DirectionHandler.js b/sdk/src/DirectionHandler.js index 7521321..f17f0f2 100644 --- a/sdk/src/DirectionHandler.js +++ b/sdk/src/DirectionHandler.js @@ -179,20 +179,22 @@ class DirectionHandler { background-color: rgba(0, 0, 0, 0.4); border-radius: 5px; `; - this.keyboardInputContent.style.cssText = ` - display: ${this.currentDisplay ? this.currentDisplay : 'none'}; - -webkit-transform: rotate(${positionParams.transformAngle}deg); - -moz-transform: rotate(${positionParams.transformAngle}deg); - -ms-transform: rotate(${positionParams.transformAngle}deg); - -o-transform: rotate(${positionParams.transformAngle}deg); - transform-origin: left; - transform: rotate(${positionParams.transformAngle}deg); - position: absolute; - top: ${positionParams.keyboardInputTop}px; - left: ${positionParams.keyboardInputLeft}px; - height: 0px; - width: 10px; - `; + if (this.keyboardInputContent) { + this.keyboardInputContent.style.cssText = ` + display: ${this.currentDisplay ? this.currentDisplay : 'none'}; + -webkit-transform: rotate(${positionParams.transformAngle}deg); + -moz-transform: rotate(${positionParams.transformAngle}deg); + -ms-transform: rotate(${positionParams.transformAngle}deg); + -o-transform: rotate(${positionParams.transformAngle}deg); + transform-origin: left; + transform: rotate(${positionParams.transformAngle}deg); + position: absolute; + top: ${positionParams.keyboardInputTop}px; + left: ${positionParams.keyboardInputLeft}px; + height: 0px; + width: 10px; + `; + } this.ctrlEle.style.top = `${positionParams.ctrlEleTop}px`; this.ctrlEle.style.left = `${positionParams.ctrlEleLeft}px`; @@ -277,8 +279,15 @@ class DirectionHandler { const ctrlEleTop = (this.containerEle.clientHeight - this.displayBox.width)/2 + this.netWorkInfo.clientHeight; const ctrlEleLeft = this.containerEle.clientWidth - this.ctrlEle.clientHeight * 2.5; const netWorkInfoWidth = this.containerEle.clientHeight; - const keyboardInputLeft = Number(window.getComputedStyle(this.keyboardInputContent).height.split('px')[0])/2; - const keyboardInputTop = -Number(window.getComputedStyle(this.keyboardInputContent).height.split('px')[0])/2; + let keyboardInputLeft; + let keyboardInputTop; + if(this.keyboardInputContent) { + keyboardInputLeft = Number(window.getComputedStyle(this.keyboardInputContent).height.split('px')[0])/2; + keyboardInputTop = -Number(window.getComputedStyle(this.keyboardInputContent).height.split('px')[0])/2; + } else { + keyboardInputLeft = 0; + keyboardInputTop = 0; + } const keyboardInputWidth = this.containerEle.clientHeight; const positionParams = { transformAngle, @@ -312,8 +321,15 @@ class DirectionHandler { const ctrlEleTop = this.ctrlEle.clientHeight; const ctrlEleLeft = (windowHeight - this.containerEle.clientWidth)/2 + this.containerEle.clientWidth - this.netWorkInfo.clientHeight * 3.5; const netWorkInfoWidth = this.containerEle.clientHeight; - const keyboardInputLeft = this.containerEle.clientWidth/2 - this.keyboardInputContent.clientHeight; - const keyboardInputTop = -Number(window.getComputedStyle(this.keyboardInputContent).height.split('px')[0])/2; + let keyboardInputLeft; + let keyboardInputTop; + if(this.keyboardInputContent) { + keyboardInputLeft = this.containerEle.clientWidth/2 - this.keyboardInputContent.clientHeight; + keyboardInputTop = -Number(window.getComputedStyle(this.keyboardInputContent).height.split('px')[0])/2; + } else { + keyboardInputLeft = 0; + keyboardInputTop = 0; + } const keyboardInputWidth = this.containerEle.clientHeight; const positionParams = { transformAngle, -- Gitee From c92499d98007fcb4e610d0eb02253dc1606f2ede Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Tue, 2 Apr 2024 16:01:01 +0800 Subject: [PATCH 09/14] 1 --- sdk/src/CloudApp.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/CloudApp.js b/sdk/src/CloudApp.js index da3a560..4ea8460 100644 --- a/sdk/src/CloudApp.js +++ b/sdk/src/CloudApp.js @@ -54,7 +54,7 @@ class CloudApp { } requestIFrame() { - const channelType = this.options.channelType; + const channelType = this.options.channelType || 'WebSocket';; if (channelType === 'WebSocket') { console.log(2,'websocket情况下 准备使用Iframe') this.channel.requestIFrame(); -- Gitee From 84fbc2410e98c10d774a244221bd0ed8b278ef39 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Wed, 3 Apr 2024 11:31:00 +0800 Subject: [PATCH 10/14] 1 --- sdk/src/AppController.js | 12 ++++++++---- sdk/src/CPHCloudApp.js | 1 - sdk/src/CloudApp.js | 1 - 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/sdk/src/AppController.js b/sdk/src/AppController.js index 663981d..c5751e0 100644 --- a/sdk/src/AppController.js +++ b/sdk/src/AppController.js @@ -105,6 +105,7 @@ const WORKER_STATE = { class AppController { constructor(options) { + this.index=0 this.options = {volume: DEFAULT_VALUME_VALUE, ...options}; this.util = new Util(); this.render = true; @@ -923,9 +924,6 @@ class AppController { */ makeActionMsg(msgType, msgCmd, params = {}) { const MSG_CMD_MAP = {...PROTOCOL_CONFIG.CMD_TYPE}; - if(msgCmd === 'REQUEST_I_FRAME') { - console.log(5+'发送的命令是', MSG_CMD_MAP[msgCmd]) - } let msgBody = this.paramsSerialize({ command: MSG_CMD_MAP[msgCmd], ...params @@ -1143,6 +1141,12 @@ class AppController { window.delayAnalysis.record(['play', 'buffered', 'message', traceId], buffered); } + if(this.index == 0) { + this.requestIFrame() + this.index++ + return + } + let bufTail = new Uint8Array([0x00, 0x00, 0x01, 0x1D, 0x00, 0x00, 0x01, 0x1E, 0x48, 0x53, 0x50, 0x49, 0x43, 0x45, 0x4E, 0x44]); let allDataBuf = new Uint8Array(frame.byteLength + bufTail.byteLength); allDataBuf.set(frame); @@ -1228,7 +1232,7 @@ class AppController { // 发送关键帧数 requestIFrame() { - console.log(4, '已经发送Iframe') + console.log('已经发送Iframe') const arrayBuf = this.makeActionMsg('CMD_CONTROL', 'REQUEST_I_FRAME'); arrayBuf && this.send(arrayBuf); } diff --git a/sdk/src/CPHCloudApp.js b/sdk/src/CPHCloudApp.js index 7b90cc8..d0d7988 100644 --- a/sdk/src/CPHCloudApp.js +++ b/sdk/src/CPHCloudApp.js @@ -124,7 +124,6 @@ class CPHCloudApp { } requestIFrame() { - console.log(3, '正在发送Iframe') this.appController.requestIFrame(); } diff --git a/sdk/src/CloudApp.js b/sdk/src/CloudApp.js index 4ea8460..79fccc9 100644 --- a/sdk/src/CloudApp.js +++ b/sdk/src/CloudApp.js @@ -56,7 +56,6 @@ class CloudApp { requestIFrame() { const channelType = this.options.channelType || 'WebSocket';; if (channelType === 'WebSocket') { - console.log(2,'websocket情况下 准备使用Iframe') this.channel.requestIFrame(); } } -- Gitee From 0a56daeb8670baf05e96688426e1380d96c4a577 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Wed, 3 Apr 2024 11:31:58 +0800 Subject: [PATCH 11/14] 1 --- sdk/demo/demo.html | 2 -- sdk/src/AppController.js | 1 - sdk/src/CPHCloudApp.js | 4 ---- sdk/src/CloudApp.js | 8 -------- 4 files changed, 15 deletions(-) diff --git a/sdk/demo/demo.html b/sdk/demo/demo.html index b758aed..925923e 100644 --- a/sdk/demo/demo.html +++ b/sdk/demo/demo.html @@ -881,8 +881,6 @@ Copyright 2022 Huawei Cloud Computing Technology Co., Ltd. try { CasCallback.startSuccessCallback(); } catch (error) {} - console.log(1,'准备使用Iframe') - cloudapp.requestIFrame(); } } diff --git a/sdk/src/AppController.js b/sdk/src/AppController.js index c5751e0..a8c6c78 100644 --- a/sdk/src/AppController.js +++ b/sdk/src/AppController.js @@ -1232,7 +1232,6 @@ class AppController { // 发送关键帧数 requestIFrame() { - console.log('已经发送Iframe') const arrayBuf = this.makeActionMsg('CMD_CONTROL', 'REQUEST_I_FRAME'); arrayBuf && this.send(arrayBuf); } diff --git a/sdk/src/CPHCloudApp.js b/sdk/src/CPHCloudApp.js index d0d7988..707c6fb 100644 --- a/sdk/src/CPHCloudApp.js +++ b/sdk/src/CPHCloudApp.js @@ -123,10 +123,6 @@ class CPHCloudApp { this.appController.fullscreenToggle(fullscreenElementId); } - requestIFrame() { - this.appController.requestIFrame(); - } - __defaultValidator (name, val, rule) { if (rule.startsWith('len')) { let subs = rule.split(':'); diff --git a/sdk/src/CloudApp.js b/sdk/src/CloudApp.js index 79fccc9..e118612 100644 --- a/sdk/src/CloudApp.js +++ b/sdk/src/CloudApp.js @@ -18,7 +18,6 @@ import AppController from "./AppController"; class CloudApp { constructor(containerId, options) { this.channel = this._getChannel(containerId, options); - this.options = options } static isSupport() { @@ -53,13 +52,6 @@ class CloudApp { this.channel.reconnect(); } - requestIFrame() { - const channelType = this.options.channelType || 'WebSocket';; - if (channelType === 'WebSocket') { - this.channel.requestIFrame(); - } - } - fullscreenToggle(fullscreenElementId) { this.channel.fullscreenToggle(fullscreenElementId); } -- Gitee From 1c95be2f4408565f39f7321c13e56d8337c19355 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Wed, 3 Apr 2024 11:35:36 +0800 Subject: [PATCH 12/14] 1 --- sdk/src/AppController.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sdk/src/AppController.js b/sdk/src/AppController.js index a8c6c78..3951659 100644 --- a/sdk/src/AppController.js +++ b/sdk/src/AppController.js @@ -105,7 +105,7 @@ const WORKER_STATE = { class AppController { constructor(options) { - this.index=0 + this.firstIFrame = true; this.options = {volume: DEFAULT_VALUME_VALUE, ...options}; this.util = new Util(); this.render = true; @@ -924,6 +924,7 @@ class AppController { */ makeActionMsg(msgType, msgCmd, params = {}) { const MSG_CMD_MAP = {...PROTOCOL_CONFIG.CMD_TYPE}; + let msgBody = this.paramsSerialize({ command: MSG_CMD_MAP[msgCmd], ...params @@ -1141,9 +1142,9 @@ class AppController { window.delayAnalysis.record(['play', 'buffered', 'message', traceId], buffered); } - if(this.index == 0) { + if(this.firstIFrame) { this.requestIFrame() - this.index++ + this.firstIFrame = false; return } -- Gitee From fa33deb7ee383afd6277468d8ca6de906a42ccf0 Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Wed, 3 Apr 2024 11:36:08 +0800 Subject: [PATCH 13/14] 1 --- sdk/src/AppController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/AppController.js b/sdk/src/AppController.js index 3951659..a2d0cc9 100644 --- a/sdk/src/AppController.js +++ b/sdk/src/AppController.js @@ -924,7 +924,7 @@ class AppController { */ makeActionMsg(msgType, msgCmd, params = {}) { const MSG_CMD_MAP = {...PROTOCOL_CONFIG.CMD_TYPE}; - + let msgBody = this.paramsSerialize({ command: MSG_CMD_MAP[msgCmd], ...params -- Gitee From 0b3eb63f7116eb6f64d1cc93f20687eb78bcfddf Mon Sep 17 00:00:00 2001 From: Yuan <294065614@qq.com> Date: Mon, 22 Apr 2024 11:13:21 +0800 Subject: [PATCH 14/14] 1 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ec00040..90c03c0 100644 --- a/README.md +++ b/README.md @@ -222,8 +222,8 @@ Chrome restricts the usage of WebCryptographyApi to secure origins. It means 'ht | 参数 | 参数类型 | 描述 | 约束 | | -------------- | -------- | ------ | ---------------------- | | bitrate | String | 码率 | 1Mbit/s到10Mbit/s | - | virtual_width | String | 虚拟宽 | 240到4096,且为8的倍数 | - | virtual_height | String | 虚拟高 | 240到4096,且为8的倍数 | + | stream_width | String | 虚拟宽 | 240到4096,且为8的倍数 | + | stream_height | String | 虚拟高 | 240到4096,且为8的倍数 | #### 4.10 应用状态更新 -- Gitee