dbDetails.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. //index.js
  2. //获取应用实例
  3. const app = require('../../utils/util.js');
  4. // const app = getApp()
  5. Page({
  6. data: {
  7. url: '',
  8. title: '',
  9. message: '',
  10. playTimes: 0,
  11. id: 0,
  12. studyLog: {},
  13. intervalTime: 0, //隔五分钟清空重新计时
  14. currentTime: 0,
  15. startPlayTime: 0,
  16. video_real_time: 0, //实时播放进度
  17. initial_time: '', //视频跳转进度 秒
  18. intervalCtx: null,
  19. videoContext: null
  20. },
  21. videoErrorCallback: function (e) {
  22. console.log('视频错误信息:')
  23. console.log(e.detail.errMsg)
  24. },
  25. onReady: function () {},
  26. // 计时
  27. calculateTime() {
  28. let _this = this;
  29. this.setData({
  30. intervalTime: _this.data.intervalTime + 5
  31. })
  32. if (_this.data.intervalTime > 300) {
  33. _this.data.videoContext.pause()
  34. this.setData({
  35. intervalTime: 0
  36. })
  37. wx.showModal({
  38. showCancel: false,
  39. content: "您还在吗,请点击确定继续观看视频哦",
  40. success(res) {
  41. console.log(res, "22222222")
  42. if (res.confirm) {
  43. _this.data.videoContext.play()
  44. }
  45. }
  46. })
  47. }
  48. console.log(_this.data.intervalTime, "我是正在加的数")
  49. },
  50. bindplay() {
  51. this.setData({
  52. videoContext: wx.createVideoContext('myVideo')
  53. })
  54. console.log("我点击开始了")
  55. let _this = this;
  56. _this.setData({
  57. intervalCtx: setInterval(function () {
  58. _this.calculateTime()
  59. }, 5000)
  60. })
  61. },
  62. bindpause() {
  63. clearInterval(this.data.intervalCtx)
  64. console.log(this.data.intervalTime, "我是暂停时加的所有数")
  65. },
  66. getdbArr(sessionKey) {
  67. var _this = this;
  68. wx.request({
  69. method: "post",
  70. url: app.globalData.publicUrl + '/wx/course/selectRecordByCourseId',
  71. data: {
  72. sessionKey: sessionKey,
  73. courseId: _this.data.id
  74. },
  75. success: (e) => {
  76. console.log(e, "2222222222")
  77. this.setData({
  78. url: e.data.url,
  79. show: false,
  80. title: e.data.course.courseInfo,
  81. message: e.data.course.courseName,
  82. playTimes: e.data.course.playTimes
  83. })
  84. }
  85. })
  86. },
  87. getStudyLog(sessionKey) {
  88. var _this = this;
  89. wx.request({
  90. method: "post",
  91. url: app.globalData.publicUrl + '/wx/course/getStudyLog',
  92. data: {
  93. sessionKey: sessionKey,
  94. courseId: _this.data.id
  95. },
  96. success: (e) => {
  97. console.log(e, "22222222222222")
  98. if (e.data.studyLog.isDone == 1) {
  99. _this.setData({
  100. studyLog: e.data.studyLog
  101. })
  102. } else {
  103. _this.setData({
  104. studyLog: e.data.studyLog,
  105. startPlayTime: e.data.studyLog.studyTime
  106. })
  107. }
  108. }
  109. })
  110. },
  111. timeUpdate: function (e) {
  112. // console.log(e.detail.duration,"我是视频总长")
  113. //实时播放进度 秒数
  114. let _this = this;
  115. let currentTime = parseInt(e.detail.currentTime) //当前播放秒数
  116. let studyTime = 'studyLog.studyTime'
  117. this.setData({
  118. [studyTime]: currentTime
  119. })
  120. let aa = 1;
  121. let duration = e.detail.duration
  122. if (_this.data.video_real_time == 0) {
  123. var jump_time = parseInt(_this.data.startPlayTime) + parseInt(_this.data.video_real_time)
  124. } else {
  125. var jump_time = parseInt(_this.data.video_real_time)
  126. }
  127. if (aa == 1) {
  128. if (currentTime > jump_time && currentTime - jump_time > 3) {
  129. _this.data.videoContextvideoContext.seek(_this.data.video_real_time)
  130. wx.showToast({
  131. title: '未完整看完该视频,不能快进',
  132. icon: 'none',
  133. duration: 2000,
  134. })
  135. }
  136. }
  137. _this.setData({
  138. video_real_time: currentTime, //实时播放进度
  139. })
  140. },
  141. chechEndStatus: function () {
  142. let _this = this;
  143. // let currentTime = parseInt(e.detail.currentTime)
  144. let isDone = 'studyLog.isDone'
  145. this.setData({
  146. [isDone]: 1
  147. })
  148. wx.request({
  149. method: "post",
  150. url: app.globalData.publicUrl + '/wx/course/updateStudyLog',
  151. data: {
  152. studyLog: _this.data.studyLog
  153. },
  154. success: (e) => {
  155. console.log(e, "我修改进度成功了aaaa")
  156. }
  157. })
  158. },
  159. onUnload() {
  160. var _this = this;
  161. if (_this.data.startPlayTime < _this.data.studyLog.studyTime) {
  162. console.log(_this.data.studyLog)
  163. wx.request({
  164. method: "post",
  165. url: app.globalData.publicUrl + '/wx/course/updateStudyLog',
  166. data: {
  167. studyLog: _this.data.studyLog
  168. },
  169. success: (e) => {
  170. console.log(e, "我修改进度成功了")
  171. }
  172. })
  173. }
  174. },
  175. onHide() {
  176. var _this = this;
  177. if (_this.data.studyTime < _this.data.studyLog.studyTime) {
  178. console.log(_this.data.studyLog)
  179. wx.request({
  180. method: "post",
  181. url: app.globalData.publicUrl + '/wx/course/updateStudyLog',
  182. data: {
  183. studyLog: _this.data.studyLog
  184. },
  185. success: (e) => {
  186. console.log(e, "我修改进度成功了")
  187. }
  188. })
  189. }
  190. // console.log(_this.data.studyLog)
  191. // wx.request({
  192. // method: "post",
  193. // url: app.globalData.publicUrl + '/wx/course/updateStudyLog',
  194. // data: {
  195. // studyLog: _this.data.studyLog
  196. // },
  197. // success: (e) => {
  198. // console.log(e, "我修改进度成功了")
  199. // }
  200. // })
  201. },
  202. onLoad: function (options) {
  203. var _this = this;
  204. _this.setData({
  205. id: options.id
  206. })
  207. wx.checkSession({
  208. success: () => {
  209. console.log("我有缓存")
  210. var sessionKey = wx.getStorageSync('sessionKey');
  211. if (sessionKey == "") {
  212. wx.login({
  213. success(res) {
  214. console.log(res);
  215. var code = res.code
  216. wx.request({
  217. url: app.globalData.publicUrl2 + '/wx/user/wx7e7a46e129d6cd0f/login',
  218. method: "get",
  219. data: {
  220. code
  221. },
  222. success: function (res) {
  223. sessionKey = res.data.sessionKey;
  224. wx.setStorageSync('sessionKey', res.data.sessionKey);
  225. _this.getdbArr(sessionKey);
  226. _this.getStudyLog(sessionKey);
  227. }
  228. })
  229. }
  230. })
  231. } else {
  232. _this.getdbArr(sessionKey);
  233. _this.getStudyLog(sessionKey);
  234. }
  235. },
  236. fail() {
  237. console.log("我没有缓存并去登录请求")
  238. wx.login({
  239. success(res) {
  240. console.log(res);
  241. var code = res.code
  242. wx.request({
  243. url: app.globalData.publicUrl2 + '/wx/user/wx7e7a46e129d6cd0f/login',
  244. method: "get",
  245. data: {
  246. code
  247. },
  248. success: function (res) {
  249. wx.setStorageSync('sessionKey', res.data.sessionKey);
  250. var sessionKey = res.data.sessionKey;
  251. _this.getdbArr(sessionKey);
  252. _this.getStudyLog(sessionKey);
  253. }
  254. })
  255. }
  256. })
  257. }
  258. })
  259. }
  260. })