Commit 6963a3f3d8b71e0e9a1ebb9726ec6ea105bd43eb
1 parent
4795b643
修复浏览器无法自动播放语音
Showing
3 changed files
with
43 additions
and
44 deletions
dist/gxb-ide/CodingEditer.js
| @@ -121,7 +121,7 @@ | @@ -121,7 +121,7 @@ | ||
| 121 | * 播放代码 | 121 | * 播放代码 |
| 122 | * Created by Kira on 2017-02-08 | 122 | * Created by Kira on 2017-02-08 |
| 123 | */ | 123 | */ |
| 124 | - playCoding: function(){ | 124 | + playCoding: function(e){ |
| 125 | CodingEditer.editable(1); | 125 | CodingEditer.editable(1); |
| 126 | CodingEditer.flag = false; | 126 | CodingEditer.flag = false; |
| 127 | if (CodingEditer.firstPlay == 0) { | 127 | if (CodingEditer.firstPlay == 0) { |
| @@ -145,30 +145,36 @@ | @@ -145,30 +145,36 @@ | ||
| 145 | var playTotalTime = 0; | 145 | var playTotalTime = 0; |
| 146 | 146 | ||
| 147 | $('#recordertab a:eq(1)').tab('show'); | 147 | $('#recordertab a:eq(1)').tab('show'); |
| 148 | + // 处理浏览器无法自动播放语音时候,编辑器显示空内容 | ||
| 149 | + if (e && !e.status) { | ||
| 150 | + var timeoutcontroller = null; | ||
| 151 | + CodingEditer.recordtimeoutcontrolls.push(timeoutcontroller); | ||
| 152 | + } else { | ||
| 153 | + for (var i = 0; i < playbackrecord.length; i++) { | ||
| 154 | + if (playbackrecord[i].trigger === 1) { | ||
| 155 | + playTotalTime += parseInt(playbackrecord[i].intervaltime); | ||
| 156 | + }else if (playbackrecord[i].trigger === 0) { | ||
| 157 | + var timeoutcontroller = null; | ||
| 158 | + var replayinterval = playbackrecord[i].intervaltime; | ||
| 159 | + | ||
| 160 | + if (!CodingEditer.isPause) { | ||
| 161 | + starttime = replayinterval - (CodingEditer.audioTime - playTotalTime); | ||
| 162 | + CodingEditer.isPause = true; | ||
| 163 | + }else{ | ||
| 164 | + // if (i == 0) { | ||
| 165 | + // starttime = replayinterval; | ||
| 166 | + // }else{ | ||
| 167 | + // starttime = parseInt(starttime) + parseInt(replayinterval); | ||
| 168 | + // } | ||
| 169 | + starttime = parseInt(starttime) + parseInt(replayinterval); | ||
| 170 | + } | ||
| 148 | 171 | ||
| 149 | - for (var i = 0; i < playbackrecord.length; i++) { | ||
| 150 | - if (playbackrecord[i].trigger === 1) { | ||
| 151 | - playTotalTime += parseInt(playbackrecord[i].intervaltime); | ||
| 152 | - }else if (playbackrecord[i].trigger === 0) { | ||
| 153 | - var timeoutcontroller = null; | ||
| 154 | - var replayinterval = playbackrecord[i].intervaltime; | ||
| 155 | - | ||
| 156 | - if (!CodingEditer.isPause) { | ||
| 157 | - starttime = replayinterval - (CodingEditer.audioTime - playTotalTime); | ||
| 158 | - CodingEditer.isPause = true; | ||
| 159 | - }else{ | ||
| 160 | - // if (i == 0) { | ||
| 161 | - // starttime = replayinterval; | ||
| 162 | - // }else{ | ||
| 163 | - // starttime = parseInt(starttime) + parseInt(replayinterval); | ||
| 164 | - // } | ||
| 165 | - starttime = parseInt(starttime) + parseInt(replayinterval); | 172 | + timeoutcontroller = setTimeout(changeValueCallback(playbackrecord[i]), starttime/CodingEditer.speed); |
| 173 | + CodingEditer.recordtimeoutcontrolls.push(timeoutcontroller); | ||
| 166 | } | 174 | } |
| 167 | - | ||
| 168 | - timeoutcontroller = setTimeout(changeValueCallback(playbackrecord[i]), starttime/CodingEditer.speed); | ||
| 169 | - CodingEditer.recordtimeoutcontrolls.push(timeoutcontroller); | ||
| 170 | } | 175 | } |
| 171 | } | 176 | } |
| 177 | + | ||
| 172 | console.log(CodingEditer.recordtimeoutcontrolls) | 178 | console.log(CodingEditer.recordtimeoutcontrolls) |
| 173 | }, | 179 | }, |
| 174 | pauseCode: function(){ | 180 | pauseCode: function(){ |
dist/gxb-ide/Dir.js
| @@ -782,23 +782,9 @@ | @@ -782,23 +782,9 @@ | ||
| 782 | imagePath: '../js/audioPlayer/image', | 782 | imagePath: '../js/audioPlayer/image', |
| 783 | debuggers: false, | 783 | debuggers: false, |
| 784 | allowSeek: false, | 784 | allowSeek: false, |
| 785 | - canplayCallback: function(res){ | ||
| 786 | - if (res.status == true && playTimes === 0 && !isAndroid) { | ||
| 787 | - CodingEditer.playCoding(); | ||
| 788 | - playTimes++ | ||
| 789 | - // alert('canplay !isAndroid ----------- ' + playTimes) | ||
| 790 | - } | ||
| 791 | - // alert('canplayCallback可以播放 ----------- ' + playTimes) | ||
| 792 | - }, | ||
| 793 | - onwaitingCallback: function(){ | ||
| 794 | - // alert('onwaitingCallback ----------- ' + playTimes) | ||
| 795 | - }, | ||
| 796 | - playCallback: function() { // 播放 | ||
| 797 | - if (playTimes != 0) { | ||
| 798 | - CodingEditer.playCoding(); | ||
| 799 | - // alert('playCoding可以播放 ----------- ' + playTimes) | ||
| 800 | - } | ||
| 801 | - // alert('playCoding可以播放 ----------- ' + playTimes) | 785 | + playCallback: function(e) { // 播放 |
| 786 | + console.log('++++++++'); | ||
| 787 | + CodingEditer.playCoding(e); | ||
| 802 | }, | 788 | }, |
| 803 | pauseCallback: function() { // 暂停 | 789 | pauseCallback: function() { // 暂停 |
| 804 | CodingEditer.audioTime = parseInt(player.elements.audioDom.currentTime*1000); | 790 | CodingEditer.audioTime = parseInt(player.elements.audioDom.currentTime*1000); |
dist/js/audioPlayer/jQuery.AudioPlayer.js
| @@ -352,13 +352,20 @@ | @@ -352,13 +352,20 @@ | ||
| 352 | // Set the playback / 设置播放 | 352 | // Set the playback / 设置播放 |
| 353 | ,play: function(o) { | 353 | ,play: function(o) { |
| 354 | var _this = this; | 354 | var _this = this; |
| 355 | - _this.elements.audioDom.play(); | ||
| 356 | - if (typeof o == 'function') { | ||
| 357 | - o({'status': _this.elements.audioDom.play}); | ||
| 358 | - } | 355 | + var canPlay = _this.elements.audioDom.play(); |
| 356 | + // 处理浏览器无法自动播放语音 | ||
| 357 | + if (canPlay !== undefined) { | ||
| 358 | + canPlay.then(_ => { | ||
| 359 | + if (typeof o == 'function') { | ||
| 360 | + o({'status': true}); | ||
| 361 | + } | ||
| 359 | 362 | ||
| 360 | - if(typeof _this.options.playCallback == 'function'){ | ||
| 361 | - _this.options.playCallback({'status': _this.elements.audioDom.play}); | 363 | + if(typeof _this.options.playCallback == 'function'){ |
| 364 | + _this.options.playCallback({'status': true}); | ||
| 365 | + } | ||
| 366 | + }).catch(error => { | ||
| 367 | + _this.options.playCallback({'status': false}); | ||
| 368 | + }); | ||
| 362 | } | 369 | } |
| 363 | } | 370 | } |
| 364 | // Set the suspend / 设置暂停 | 371 | // Set the suspend / 设置暂停 |