Commit 710fbe2b72c9a0a5209d14e623ced31f9f46fc32
1 parent
93cb23de
直播
Showing
3 changed files
with
162 additions
and
95 deletions
packageA/pages/liveStream/liveStream.js
| ... | ... | @@ -44,12 +44,12 @@ Page({ |
| 44 | 44 | wx.navigateTo({ |
| 45 | 45 | url: '/packageA/pages/liveStreamDetails/liveStreamDetails?id=' + e.currentTarget.dataset.id + '&live=' + e.currentTarget.dataset.live |
| 46 | 46 | }) |
| 47 | - console.log('options-->'); | |
| 47 | + // console.log('options-->'); | |
| 48 | 48 | }, |
| 49 | 49 | |
| 50 | 50 | // 点击 订阅/观看直播/观看回放 按钮,跳转直播组件 |
| 51 | 51 | clickLive: function (e) { |
| 52 | - console.log('当前房间号roomid:', e.currentTarget.dataset.roomid); | |
| 52 | + // console.log('当前房间号roomid:', e.currentTarget.dataset.roomid); | |
| 53 | 53 | let roomId = e.currentTarget.dataset.roomid; |
| 54 | 54 | let customParams = encodeURIComponent(JSON.stringify({ |
| 55 | 55 | path: 'pages/index/index', |
| ... | ... | @@ -77,74 +77,74 @@ Page({ |
| 77 | 77 | }); |
| 78 | 78 | }, |
| 79 | 79 | |
| 80 | - loadLiveList: function (curPage) { | |
| 81 | - // console.log('---->curPage', curPage); | |
| 82 | - // var live = {}; | |
| 83 | - // live.toBegin = []; // 即将开始 | |
| 84 | - // live.ing = []; // 直播中 | |
| 85 | - // var liveOver = []; // 已结束 | |
| 86 | - var that = this; | |
| 87 | - var storeId = o.stoid; | |
| 88 | - | |
| 89 | - // 请求数据 | |
| 90 | - getApp().request.promiseGet("/api/weshop/wx/livelist/page", { | |
| 91 | - data: { | |
| 92 | - storedId: o.stoid, | |
| 93 | - page: curPage, | |
| 94 | - live_status: 103 | |
| 95 | - } | |
| 96 | - }).then(res => { | |
| 97 | - if (res.data.code == 0) { | |
| 98 | - console.log('res------------>', res); | |
| 99 | - // 计算总页数 | |
| 100 | - // var total = res.data.data.total; | |
| 101 | - // console.log("total", total); | |
| 102 | - // var pageSize = res.data.data.pageSize; | |
| 103 | - // console.log("pageSize", pageSize); | |
| 104 | - // var pageNum = that.pageTotal(total, pageSize); | |
| 105 | - // that.setData({ | |
| 106 | - // pageNum: that.pageTotal(total, pageSize) | |
| 107 | - // }); | |
| 108 | - | |
| 109 | - // 如果当前请求的是第一页数据,则执行赋值,否则执行合并再赋值 | |
| 110 | - if (curPage == 1) { | |
| 111 | - that.setData({ | |
| 112 | - liveOver: that.data.liveOver.concat(res.data.data.pageData) | |
| 113 | - }) | |
| 114 | - } else { | |
| 115 | - that.setData({ | |
| 116 | - liveOver: that.data.liveOver.concat(res.data.data.pageData) | |
| 117 | - }) | |
| 118 | - }; | |
| 119 | - | |
| 120 | - // var list = that.data.list; | |
| 121 | - // for(var i in list) { | |
| 122 | - // var liveStatus = list[i].live_status; | |
| 123 | - // if (liveStatus == '101') { | |
| 124 | - // live.ing.push(list[i]); | |
| 125 | - // } else if (liveStatus == '102') { | |
| 126 | - // live.toBegin.push(list[i]); | |
| 127 | - // } else if (liveStatus == '103') { | |
| 128 | - // live.over.push(list[i]); | |
| 129 | - // } | |
| 130 | - // } | |
| 131 | - | |
| 132 | - // that.setData({ | |
| 133 | - // liveOver: list | |
| 134 | - // }); | |
| 135 | - | |
| 136 | - curPage++; | |
| 137 | - that.setData({ | |
| 138 | - curPage | |
| 139 | - }); | |
| 140 | - | |
| 141 | - console.log('上拉已经触发,当前page------------------------->',that.data.curPage); | |
| 142 | - | |
| 143 | - } else { | |
| 144 | - console.error('请求失败!!!!!'); | |
| 145 | - } | |
| 146 | - }) | |
| 147 | - }, | |
| 80 | + // loadLiveList: function (curPage) { | |
| 81 | + // // console.log('---->curPage', curPage); | |
| 82 | + // // var live = {}; | |
| 83 | + // // live.toBegin = []; // 即将开始 | |
| 84 | + // // live.ing = []; // 直播中 | |
| 85 | + // // var liveOver = []; // 已结束 | |
| 86 | + // var that = this; | |
| 87 | + // var storeId = o.stoid; | |
| 88 | + | |
| 89 | + // // 请求数据 | |
| 90 | + // getApp().request.promiseGet("/api/weshop/wx/livelist/page", { | |
| 91 | + // data: { | |
| 92 | + // storedId: o.stoid, | |
| 93 | + // page: curPage, | |
| 94 | + // live_status: 103 | |
| 95 | + // } | |
| 96 | + // }).then(res => { | |
| 97 | + // if (res.data.code == 0) { | |
| 98 | + // // console.log('res------------>', res); | |
| 99 | + // // 计算总页数 | |
| 100 | + // // var total = res.data.data.total; | |
| 101 | + // // console.log("total", total); | |
| 102 | + // // var pageSize = res.data.data.pageSize; | |
| 103 | + // // console.log("pageSize", pageSize); | |
| 104 | + // // var pageNum = that.pageTotal(total, pageSize); | |
| 105 | + // // that.setData({ | |
| 106 | + // // pageNum: that.pageTotal(total, pageSize) | |
| 107 | + // // }); | |
| 108 | + | |
| 109 | + // // 如果当前请求的是第一页数据,则执行赋值,否则执行合并再赋值 | |
| 110 | + // if (curPage == 1) { | |
| 111 | + // that.setData({ | |
| 112 | + // liveOver: that.data.liveOver.concat(res.data.data.pageData) | |
| 113 | + // }) | |
| 114 | + // } else { | |
| 115 | + // that.setData({ | |
| 116 | + // liveOver: that.data.liveOver.concat(res.data.data.pageData) | |
| 117 | + // }) | |
| 118 | + // }; | |
| 119 | + | |
| 120 | + // // var list = that.data.list; | |
| 121 | + // // for(var i in list) { | |
| 122 | + // // var liveStatus = list[i].live_status; | |
| 123 | + // // if (liveStatus == '101') { | |
| 124 | + // // live.ing.push(list[i]); | |
| 125 | + // // } else if (liveStatus == '102') { | |
| 126 | + // // live.toBegin.push(list[i]); | |
| 127 | + // // } else if (liveStatus == '103') { | |
| 128 | + // // live.over.push(list[i]); | |
| 129 | + // // } | |
| 130 | + // // } | |
| 131 | + | |
| 132 | + // // that.setData({ | |
| 133 | + // // liveOver: list | |
| 134 | + // // }); | |
| 135 | + | |
| 136 | + // curPage++; | |
| 137 | + // that.setData({ | |
| 138 | + // curPage | |
| 139 | + // }); | |
| 140 | + | |
| 141 | + // console.log('上拉已经触发,当前page------------------------->',that.data.curPage); | |
| 142 | + | |
| 143 | + // } else { | |
| 144 | + // console.error('请求失败!!!!!'); | |
| 145 | + // } | |
| 146 | + // }) | |
| 147 | + // }, | |
| 148 | 148 | |
| 149 | 149 | // pageTotal: function (rowCount, pageSize) { |
| 150 | 150 | // if (rowCount == null || rowCount == "") { |
| ... | ... | @@ -338,7 +338,7 @@ Page({ |
| 338 | 338 | // }) |
| 339 | 339 | // } |
| 340 | 340 | |
| 341 | - console.log('触底啦'); | |
| 341 | + // console.log('触底啦'); | |
| 342 | 342 | this.scrollToLower('/api/weshop/wx/livelist/page', { |
| 343 | 343 | storedId: o.stoid, |
| 344 | 344 | live_status: 103 |
| ... | ... | @@ -351,7 +351,7 @@ Page({ |
| 351 | 351 | onShareAppMessage: function () { |
| 352 | 352 | if (res.from === 'button') { |
| 353 | 353 | // 来自页面内转发按钮 |
| 354 | - console.log(res.target) | |
| 354 | + // console.log(res.target) | |
| 355 | 355 | } |
| 356 | 356 | return { |
| 357 | 357 | title: '直播列表' |
| ... | ... | @@ -362,7 +362,7 @@ Page({ |
| 362 | 362 | onShareTimeline: function (res) { |
| 363 | 363 | if (res.from === 'button') { |
| 364 | 364 | // 来自页面内转发按钮 |
| 365 | - console.log(res.target) | |
| 365 | + // console.log(res.target) | |
| 366 | 366 | } |
| 367 | 367 | return { |
| 368 | 368 | title: '直播列表' | ... | ... |
packageA/pages/liveStreamDetails/liveStreamDetails.js
| ... | ... | @@ -79,14 +79,18 @@ Page({ |
| 79 | 79 | //生成海报 |
| 80 | 80 | createPlaybill: function () { |
| 81 | 81 | // 1.提示 “正在生成海报...” |
| 82 | + wx.showLoading({ | |
| 83 | + title: '正在生成海报...' | |
| 84 | + }); | |
| 82 | 85 | |
| 83 | - // 2.生成海报,如果生成完毕,关闭提示 | |
| 84 | - this.drawPlaybill(); | |
| 85 | 86 | // 3.展示生成的海报 |
| 86 | 87 | this.setData({ |
| 87 | 88 | showActionSheet: 'false', |
| 88 | - showPlaybill: !this.data.showPlaybill | |
| 89 | + // showPlaybill: !this.data.showPlaybill | |
| 89 | 90 | }); |
| 91 | + | |
| 92 | + // 2.生成海报,如果生成完毕,关闭提示 | |
| 93 | + this.drawPlaybill(); | |
| 90 | 94 | |
| 91 | 95 | }, |
| 92 | 96 | |
| ... | ... | @@ -103,8 +107,8 @@ Page({ |
| 103 | 107 | }) |
| 104 | 108 | } |
| 105 | 109 | }); |
| 106 | - console.log('宽度',this.data.windowWidth); | |
| 107 | - console.log('高度',this.data.windowHeight); | |
| 110 | + // console.log('宽度',this.data.windowWidth); | |
| 111 | + // console.log('高度',this.data.windowHeight); | |
| 108 | 112 | }, |
| 109 | 113 | |
| 110 | 114 | //文本换行 参数:1、canvas对象,2、文本 3、距离左侧的距离 4、距离顶部的距离 5、6、文本的宽度 |
| ... | ... | @@ -140,9 +144,9 @@ drawText: function(ctx, str, leftWidth, initHeight, titleHeight, canvasWidth, un |
| 140 | 144 | |
| 141 | 145 | // 生成海报 |
| 142 | 146 | drawPlaybill: function () { |
| 143 | - wx.showLoading({ | |
| 144 | - title: '正在生成海报...' | |
| 145 | - }); | |
| 147 | + // wx.showLoading({ | |
| 148 | + // title: '正在生成海报...' | |
| 149 | + // }); | |
| 146 | 150 | |
| 147 | 151 | // 数据准备 |
| 148 | 152 | const title = this.data.details.name; |
| ... | ... | @@ -196,26 +200,52 @@ drawText: function(ctx, str, leftWidth, initHeight, titleHeight, canvasWidth, un |
| 196 | 200 | ctx.fillText(this.data.nickName, 106, 60); |
| 197 | 201 | |
| 198 | 202 | // 绘制主图 |
| 199 | - ctx.drawImage(this.data.coverImg, 0, 104, 480, 382); | |
| 200 | - // ctx.draw(true); | |
| 203 | + ctx.setFillStyle('#f8f8f8'); | |
| 204 | + ctx.fillRect(0, 104, 480, 380); | |
| 205 | + | |
| 206 | + // var w = this.data.coverImgWidth; | |
| 207 | + // var h = this.data.coverImgHeight; | |
| 208 | + var w = this.data.coverImgSize.imageWidth; | |
| 209 | + var h = this.data.coverImgSize.imageHeight; | |
| 210 | + // var dw = 480/w //canvas与图片的宽高比 | |
| 211 | + // var dh = 380/h | |
| 212 | + // var ratio | |
| 213 | + // // 裁剪图片中间部分 | |
| 214 | + // if(w > 480 && h > 380 || w < 480 && h < 380){ | |
| 215 | + // if (dw > dh) { | |
| 216 | + // ctx.drawImage(this.data.coverImg, 0, (h - 380/dw)/2, w, 380/dw, 0, 104, 480, 380); | |
| 217 | + // } else { | |
| 218 | + // ctx.drawImage(this.data.coverImg, (w - 480/dh)/2, 0, 480/dh, h, 0, 104, 480, 380); | |
| 219 | + // }; | |
| 220 | + // } | |
| 221 | + // // 拉伸图片 | |
| 222 | + // else{ | |
| 223 | + // if(w < 300){ | |
| 224 | + // ctx.drawImage(this.data.coverImg, 0, (h - 380/dw)/2, w, 380/dw, 0, 104, 480, 380); | |
| 225 | + // }else { | |
| 226 | + // ctx.drawImage(this.data.coverImg, (w - 480/dh)/2, 0, 480/dh, h, 0, 104, 480, 380); | |
| 227 | + // } | |
| 228 | + // }; | |
| 229 | + ctx.drawImage(this.data.coverImg, (480-w)/2, (380-h)/2+104, w, h); | |
| 230 | + | |
| 201 | 231 | |
| 202 | 232 | // 绘制文字 |
| 203 | 233 | ctx.setFontSize(24); |
| 204 | 234 | ctx.setFillStyle('#1E1E1E'); |
| 205 | - this.drawText(ctx, title, 51, 563, 300, 360, 2); | |
| 235 | + this.drawText(ctx, title, 30, 600, 200, 460, 2); | |
| 206 | 236 | |
| 207 | 237 | // 绘制小程序码 |
| 208 | - ctx.drawImage(this.data.ewm, 310, 525, 132, 132); | |
| 209 | - // ctx.draw(true); | |
| 238 | + ctx.drawImage(this.data.ewm, 310, 540, 132, 132); | |
| 239 | + | |
| 210 | 240 | |
| 211 | 241 | //绘制文字:长按识别 |
| 212 | 242 | ctx.setFontSize(20); |
| 213 | 243 | ctx.setFillStyle('#1E1E1E'); |
| 214 | - ctx.fillText('长按识别小程序', 309, 675); | |
| 244 | + ctx.fillText('长按识别小程序', 309, 710); | |
| 215 | 245 | |
| 216 | 246 | ctx.draw(true, function() { |
| 217 | 247 | setTimeout(function() { |
| 218 | - console.log("我进来了~~~~~"); | |
| 248 | + // console.log("我进来了~~~~~"); | |
| 219 | 249 | wx.canvasToTempFilePath({ |
| 220 | 250 | x: 0, |
| 221 | 251 | y: 0, |
| ... | ... | @@ -228,10 +258,12 @@ drawText: function(ctx, str, leftWidth, initHeight, titleHeight, canvasWidth, un |
| 228 | 258 | success: function(res) { |
| 229 | 259 | wx.hideLoading(); |
| 230 | 260 | that.setData({ |
| 231 | - canvasToImgPath: res.tempFilePath | |
| 261 | + canvasToImgPath: res.tempFilePath, | |
| 262 | + showPlaybill: !that.data.showPlaybill | |
| 232 | 263 | }); |
| 264 | + // console.log('生成海报陈宫啦', that.data.canvasToImgPath); | |
| 233 | 265 | // that.saveImageToPhotosAlbum(res.tempFilePath); |
| 234 | - console.log('截图陈宫:', that.data.canvasToImgPath); | |
| 266 | + // console.log('截图陈宫:', that.data.canvasToImgPath); | |
| 235 | 267 | // wx.previewImage({ |
| 236 | 268 | // //将图片预览出来 |
| 237 | 269 | // urls: [that.data.canvasToImgPath] |
| ... | ... | @@ -446,9 +478,13 @@ drawText: function(ctx, str, leftWidth, initHeight, titleHeight, canvasWidth, un |
| 446 | 478 | // 请求主图 |
| 447 | 479 | that.getImageInfo(that.data.details['share_img']).then(res => { |
| 448 | 480 | that.setData({ |
| 449 | - coverImg: res.path | |
| 481 | + coverImg: res.path, | |
| 482 | + coverImgWidth: res.width, | |
| 483 | + coverImgHeight: res.height, | |
| 484 | + coverImgSize: that.imageResize(res.width, res.height), | |
| 485 | + // coverImgHeight: res.height, | |
| 450 | 486 | }); |
| 451 | - console.log('主图加载成功~') | |
| 487 | + // console.log('主图加载成功~', that.data.coverImgSize); | |
| 452 | 488 | }); |
| 453 | 489 | |
| 454 | 490 | // 请求头像 |
| ... | ... | @@ -568,7 +604,7 @@ drawText: function(ctx, str, leftWidth, initHeight, titleHeight, canvasWidth, un |
| 568 | 604 | /** |
| 569 | 605 | * 用户点击右上角分享 |
| 570 | 606 | */ |
| 571 | - onShareAppMessage: function () { | |
| 607 | + onShareAppMessage: function (res) { | |
| 572 | 608 | this.setData({ |
| 573 | 609 | showActionSheet: 'false' |
| 574 | 610 | }) |
| ... | ... | @@ -597,6 +633,36 @@ drawText: function(ctx, str, leftWidth, initHeight, titleHeight, canvasWidth, un |
| 597 | 633 | title: this.data.details.name |
| 598 | 634 | // path: '/page/user?id=123' |
| 599 | 635 | } |
| 600 | - } | |
| 636 | + }, | |
| 637 | + | |
| 638 | + | |
| 639 | + imageResize(imgWidth, imgHeight) { | |
| 640 | + var imageSize = {}; | |
| 641 | + var originalWidth = imgWidth;//图片原始宽 | |
| 642 | + var originalHeight = imgHeight;//图片原始高 | |
| 643 | + var originalScale = originalHeight/originalWidth;//图片高宽比 | |
| 644 | + // console.log('originalWidth: ' + originalWidth) | |
| 645 | + // console.log('originalHeight: ' + originalHeight) | |
| 646 | + | |
| 647 | + //获取屏幕宽高 | |
| 648 | + var winWidth = 480; | |
| 649 | + var winHeight = 380; | |
| 650 | + var winScale = winHeight/winWidth;//屏幕高宽比 | |
| 651 | + // console.log('windowWidth: ' + winWidth) | |
| 652 | + // console.log('windowHeight: ' + winHeight) | |
| 653 | + if(originalScale < winScale){//图片高宽比小于屏幕高宽比 | |
| 654 | + //图片缩放后的宽为屏幕宽 | |
| 655 | + imageSize.imageWidth = winWidth; | |
| 656 | + imageSize.imageHeight = (winWidth * originalHeight) / originalWidth; | |
| 657 | + }else{//图片高宽比大于屏幕高宽比 | |
| 658 | + //图片缩放后的高为屏幕高 | |
| 659 | + imageSize.imageHeight = winHeight; | |
| 660 | + imageSize.imageWidth = (winHeight * originalWidth) / originalHeight; | |
| 661 | + } | |
| 662 | + console.log('缩放后的宽: ' + imageSize.imageWidth) | |
| 663 | + console.log('缩放后的高: ' + imageSize.imageHeight) | |
| 664 | + return imageSize; | |
| 665 | + }, | |
| 666 | + | |
| 601 | 667 | |
| 602 | 668 | }) | ... | ... |
packageA/pages/liveStreamDetails/liveStreamDetails.wxml
| ... | ... | @@ -75,7 +75,6 @@ |
| 75 | 75 | <!-- 生成海报 --> |
| 76 | 76 | <view class="{{showPlaybill ? 'playbill':'playbill active'}}" hidden="{{showPlaybill}}"> |
| 77 | 77 | <image src="{{canvasToImgPath}}" class="playbill-pic" mode="widthFix" bindtap="closeWin"></image> |
| 78 | - <canvas canvas-id="myCanvas" catchtouchmove="true" style="width:480px;height:738px;position:absolute;left:5000%;"></canvas> | |
| 79 | 78 | <!-- style="width:{{windowWidth}}px;height:{{windowHeight}}px;" --> |
| 80 | 79 | <view class="playbill-save" bindtap="onSaveToPhone">保存至相册</view> |
| 81 | 80 | </view> |
| ... | ... | @@ -88,5 +87,7 @@ |
| 88 | 87 | |
| 89 | 88 | </view> |
| 90 | 89 | |
| 90 | +<canvas canvas-id="myCanvas" catchtouchmove="true" style="width:480px;height:738px;position:absolute;left:-9999px;"></canvas> | |
| 91 | + | |
| 91 | 92 | <!-- <canvas canvas-id="myCanvas" class="" catchtouchmove="true" style="width:480px;height:738px;position:absolute;left:5000%"></canvas> --> |
| 92 | 93 | <!-- <canvas canvas-id='share' style='width:750rpx;height:1217rpx;' wx:if='{{!canvasHidden}}'></canvas> --> | ... | ... |