Commit 839b37ba8f902211ff9a7eddc7af5f059b18f79c
1 parent
a088de02
fix bug
Showing
1 changed file
with
109 additions
and
100 deletions
src/js/gbreplayer.js
| @@ -386,29 +386,39 @@ $(function(){ | @@ -386,29 +386,39 @@ $(function(){ | ||
| 386 | ,debuggers: false | 386 | ,debuggers: false |
| 387 | ,allowSeek: false | 387 | ,allowSeek: false |
| 388 | ,playCallback: function(){ // 播放 | 388 | ,playCallback: function(){ // 播放 |
| 389 | - // playCoder(); | ||
| 390 | - | ||
| 391 | console.log(GBCodePlayBack.pauseValue) | 389 | console.log(GBCodePlayBack.pauseValue) |
| 392 | - | 390 | + |
| 393 | if (GBCodePlayBack.firstPlay == 0) { | 391 | if (GBCodePlayBack.firstPlay == 0) { |
| 394 | $('#readonly').trigger('click'); | 392 | $('#readonly').trigger('click'); |
| 395 | GBCodePlayBack.htmlplayereditor.setValue(GBCodePlayBack.pauseValue) | 393 | GBCodePlayBack.htmlplayereditor.setValue(GBCodePlayBack.pauseValue) |
| 396 | - console.log(GBCodePlayBack.pauseValue); | 394 | + console.log('GBCodePlayBack.firstPlay--------' + GBCodePlayBack.firstPlay); |
| 397 | }else{ | 395 | }else{ |
| 398 | GBCodePlayBack.htmlplayereditor.setValue('') | 396 | GBCodePlayBack.htmlplayereditor.setValue('') |
| 399 | - console.log(GBCodePlayBack.pauseValue); | 397 | + console.log('GBCodePlayBack.firstPlay--------' + GBCodePlayBack.firstPlay); |
| 398 | + var resultData = { | ||
| 399 | + output: '', | ||
| 400 | + stderr: '', | ||
| 401 | + cmpinfo: '', | ||
| 402 | + result: 1 | ||
| 403 | + }; | ||
| 404 | + compileResult(resultData); | ||
| 400 | } | 405 | } |
| 401 | - $('#play').trigger('click'); | ||
| 402 | 406 | ||
| 407 | + playCoder(); | ||
| 408 | + // $('#play').trigger('click'); | ||
| 403 | } | 409 | } |
| 404 | ,pauseCallback: function(){ // 暂停 | 410 | ,pauseCallback: function(){ // 暂停 |
| 411 | + | ||
| 412 | + GBCodePlayBack.pauseTime = new Date().getTime(); // 暂停的时间 | ||
| 413 | + | ||
| 405 | $('#readonly').trigger('click'); | 414 | $('#readonly').trigger('click'); |
| 406 | 415 | ||
| 407 | GBCodePlayBack.firstPlay = 0; | 416 | GBCodePlayBack.firstPlay = 0; |
| 408 | 417 | ||
| 409 | GBCodePlayBack.pauseValue = GBCodePlayBack.htmlplayereditor.getValue(); | 418 | GBCodePlayBack.pauseValue = GBCodePlayBack.htmlplayereditor.getValue(); |
| 410 | 419 | ||
| 411 | - $('#play').trigger('click'); | 420 | + // $('#play').trigger('click'); |
| 421 | + playCoder(); | ||
| 412 | 422 | ||
| 413 | } | 423 | } |
| 414 | ,seekedCallback: function(){} // 拖拽 | 424 | ,seekedCallback: function(){} // 拖拽 |
| @@ -466,6 +476,7 @@ $(function(){ | @@ -466,6 +476,7 @@ $(function(){ | ||
| 466 | $('#play').find('i').removeClass('icon-play').addClass('icon-playcopy').attr('data-original-title', '暂停'); | 476 | $('#play').find('i').removeClass('icon-play').addClass('icon-playcopy').attr('data-original-title', '暂停'); |
| 467 | } | 477 | } |
| 468 | } | 478 | } |
| 479 | + console.log(GBCodePlayBack.records); | ||
| 469 | if(!playstatus){ | 480 | if(!playstatus){ |
| 470 | var playbackrecord = GBCodePlayBack.records, | 481 | var playbackrecord = GBCodePlayBack.records, |
| 471 | currenteditor = ''; | 482 | currenteditor = ''; |
| @@ -1409,10 +1420,10 @@ $(function(){ | @@ -1409,10 +1420,10 @@ $(function(){ | ||
| 1409 | 1420 | ||
| 1410 | }, | 1421 | }, |
| 1411 | changeValueCallback: function(record, replay_type, offset) { | 1422 | changeValueCallback: function(record, replay_type, offset) { |
| 1412 | - var obj = record.changeobj, editor = record.editor; | ||
| 1413 | - | ||
| 1414 | - return function() { | 1423 | + var obj = record.changeobj, |
| 1424 | + editor = record.editor; | ||
| 1415 | 1425 | ||
| 1426 | + return function() { | ||
| 1416 | if(GBCodePlayBack.active_editor!==editor){ | 1427 | if(GBCodePlayBack.active_editor!==editor){ |
| 1417 | $('#' + editor + 'button').trigger('click'); //这里出发触发选择编辑事件 | 1428 | $('#' + editor + 'button').trigger('click'); //这里出发触发选择编辑事件 |
| 1418 | }else{ | 1429 | }else{ |
| @@ -1430,7 +1441,6 @@ $(function(){ | @@ -1430,7 +1441,6 @@ $(function(){ | ||
| 1430 | record.trigger = 1; //标记已运行 | 1441 | record.trigger = 1; //标记已运行 |
| 1431 | record.playTime = new Date().getTime(); // 播放开始时间 | 1442 | record.playTime = new Date().getTime(); // 播放开始时间 |
| 1432 | 1443 | ||
| 1433 | - | ||
| 1434 | var resultData = { | 1444 | var resultData = { |
| 1435 | output: record.output || '', | 1445 | output: record.output || '', |
| 1436 | stderr: record.stderr || '', | 1446 | stderr: record.stderr || '', |
| @@ -1451,30 +1461,32 @@ $(function(){ | @@ -1451,30 +1461,32 @@ $(function(){ | ||
| 1451 | } | 1461 | } |
| 1452 | 1462 | ||
| 1453 | /*计算播放进度*/ | 1463 | /*计算播放进度*/ |
| 1454 | - var percertage = '0%',percertagenum=0; | ||
| 1455 | - if(replay_type){ | ||
| 1456 | - percertagenum = Math.ceil(GBCodePlayBack.excercise_triggertotal/GBCodePlayBack.excercise_records.length*100) | ||
| 1457 | - percertage = percertagenum + '%'; | ||
| 1458 | - }else{ | ||
| 1459 | - if(!offset){ | ||
| 1460 | - percertagenum = Math.ceil(GBCodePlayBack.triggertotal/GBCodePlayBack.records.length*100); | ||
| 1461 | - percertage = percertagenum + '%'; | ||
| 1462 | - $('#replayprogressbar').css({'width':percertage}).find('span').html(percertage); | ||
| 1463 | - $('.slider').slider( "option", "now", percertagenum); | ||
| 1464 | - } | 1464 | + var percertage = '0%', |
| 1465 | + percertagenum = 0; | ||
| 1466 | + if (replay_type) { | ||
| 1467 | + percertagenum = Math.ceil(GBCodePlayBack.excercise_triggertotal / GBCodePlayBack.excercise_records.length * 100) | ||
| 1468 | + percertage = percertagenum + '%'; | ||
| 1469 | + } else { | ||
| 1470 | + if (!offset) { | ||
| 1471 | + percertagenum = Math.ceil(GBCodePlayBack.triggertotal / GBCodePlayBack.records.length * 100); | ||
| 1472 | + percertage = percertagenum + '%'; | ||
| 1473 | + $('#replayprogressbar').css({ 'width': percertage }).find('span').html(percertage); | ||
| 1474 | + $('.slider').slider("option", "now", percertagenum); | ||
| 1475 | + } | ||
| 1465 | } | 1476 | } |
| 1466 | - | 1477 | + |
| 1467 | if(GBCodePlayBack.triggertotal === GBCodePlayBack.records.length && !replay_type){ | 1478 | if(GBCodePlayBack.triggertotal === GBCodePlayBack.records.length && !replay_type){ |
| 1468 | 1479 | ||
| 1469 | $('#play') | 1480 | $('#play') |
| 1470 | - .data('status',0) | ||
| 1471 | - .attr('title','播放') | ||
| 1472 | - .addClass('btn-success') | ||
| 1473 | - .removeClass('btn-danger') | ||
| 1474 | - .removeClass('infinite') | ||
| 1475 | - .find('span') | ||
| 1476 | - .addClass('glyphicon-play') | ||
| 1477 | - .removeClass('glyphicon-pause'); | 1481 | + .data('status', 0) |
| 1482 | + .attr('title', '播放') | ||
| 1483 | + .addClass('btn-success') | ||
| 1484 | + .removeClass('btn-danger') | ||
| 1485 | + .removeClass('infinite') | ||
| 1486 | + .find('span') | ||
| 1487 | + .addClass('glyphicon-play') | ||
| 1488 | + .removeClass('glyphicon-pause'); | ||
| 1489 | + | ||
| 1478 | 1490 | ||
| 1479 | $('#recordertab a:first').tab('show'); | 1491 | $('#recordertab a:first').tab('show'); |
| 1480 | 1492 | ||
| @@ -1507,8 +1519,6 @@ $(function(){ | @@ -1507,8 +1519,6 @@ $(function(){ | ||
| 1507 | } | 1519 | } |
| 1508 | 1520 | ||
| 1509 | GBCodePlayBack.triggeroffset=0; //reset offset for 滑动进度条 | 1521 | GBCodePlayBack.triggeroffset=0; //reset offset for 滑动进度条 |
| 1510 | - | ||
| 1511 | - | ||
| 1512 | } | 1522 | } |
| 1513 | 1523 | ||
| 1514 | if(GBCodePlayBack.excercise_triggertotal === GBCodePlayBack.excercise_records.length){ | 1524 | if(GBCodePlayBack.excercise_triggertotal === GBCodePlayBack.excercise_records.length){ |
| @@ -1784,71 +1794,68 @@ $(function(){ | @@ -1784,71 +1794,68 @@ $(function(){ | ||
| 1784 | } | 1794 | } |
| 1785 | 1795 | ||
| 1786 | // 播发代码 | 1796 | // 播发代码 |
| 1787 | - function playCoder(){ | ||
| 1788 | - //禁用修改 | ||
| 1789 | - if(!$('#replaydone').data("readonly")){ | ||
| 1790 | - $('#replaydone').trigger('click'); | ||
| 1791 | - } | ||
| 1792 | - | ||
| 1793 | - $('#recordertab a:eq(1)').tab('show'); | ||
| 1794 | - | ||
| 1795 | - var playstatus = $('#play').data('status'); | 1797 | + function playCoder() { |
| 1798 | + | ||
| 1799 | + $('#recordertab a:eq(1)').tab('show'); | ||
| 1800 | + | ||
| 1801 | + var playstatus = $('#play').data('status'); | ||
| 1802 | + console.log(playstatus) | ||
| 1803 | + if (!playstatus) { | ||
| 1804 | + var playbackrecord = GBCodePlayBack.records; | ||
| 1805 | + var starttime = playbackrecord[0].intervaltime; | ||
| 1806 | + | ||
| 1807 | + for (var i = 0; i < playbackrecord.length; i++) { | ||
| 1808 | + if (playbackrecord[i].trigger === 0) { | ||
| 1809 | + var timeoutcontroller = null; | ||
| 1810 | + var replayinterval = playbackrecord[i].intervaltime, | ||
| 1811 | + replay_enhancement_interval = GBCodePlayBack.replay_enhancement_value; | ||
| 1812 | + | ||
| 1813 | + if (i === 0) { | ||
| 1814 | + starttime = replayinterval; | ||
| 1815 | + if (GBCodePlayBack.pauseTime) { | ||
| 1816 | + if (tag === 1) { | ||
| 1817 | + GBCodePlayBack.stopIntervalTime = playbackrecord[0].intervaltime - (GBCodePlayBack.pauseTime - GBCodePlayBack.playRecordStart); | ||
| 1818 | + starttime = GBCodePlayBack.stopIntervalTime; | ||
| 1819 | + tag++; | ||
| 1820 | + } else { | ||
| 1821 | + GBCodePlayBack.stopIntervalTime = GBCodePlayBack.stopIntervalTime - (GBCodePlayBack.pauseTime - GBCodePlayBack.playRecordStart); | ||
| 1822 | + starttime = GBCodePlayBack.stopIntervalTime; | ||
| 1823 | + } | ||
| 1824 | + } | ||
| 1825 | + } else { | ||
| 1826 | + starttime = parseInt(starttime) + parseInt(replayinterval); | ||
| 1827 | + | ||
| 1828 | + if (GBCodePlayBack.pauseTime && GBCodePlayBack.pauseTime - playbackrecord[i - 1].playTime > 0) { | ||
| 1829 | + GBCodePlayBack.stopIntervalTime = GBCodePlayBack.pauseTime - playbackrecord[i - 1].playTime; | ||
| 1830 | + starttime = GBCodePlayBack.stopIntervalTime + parseInt(replayinterval); | ||
| 1831 | + } | ||
| 1832 | + } | ||
| 1833 | + timeoutcontroller = setTimeout(GBCodePlayBack.changeValueCallback(playbackrecord[i]), starttime); | ||
| 1834 | + GBCodePlayBack.recordtimeoutcontrolls.push(timeoutcontroller); | ||
| 1835 | + console.log(GBCodePlayBack.recordtimeoutcontrolls); | ||
| 1836 | + } | ||
| 1837 | + } | ||
| 1838 | + // 记录播放的时间 | ||
| 1839 | + GBCodePlayBack.playRecordStart = new Date().getTime(); | ||
| 1840 | + } else { | ||
| 1841 | + var recordtimeoutcontrolls = GBCodePlayBack.recordtimeoutcontrolls; | ||
| 1842 | + | ||
| 1843 | + for (var i = 0; i < recordtimeoutcontrolls.length; i++) { | ||
| 1844 | + clearTimeout(recordtimeoutcontrolls[i]); | ||
| 1845 | + } | ||
| 1846 | + GBCodePlayBack.recordtimeoutcontrolls = []; | ||
| 1847 | + GBCodePlayBack.recordtimeouts = []; | ||
| 1848 | + // GBCodePlayBack.playRecordStart = new Date().getTime(); // 再次开始播放的时间 | ||
| 1849 | + } | ||
| 1796 | 1850 | ||
| 1797 | - if(document.URL.indexOf('player.html')>=0){ | ||
| 1798 | - if(playstatus){ | ||
| 1799 | - GBCodePlayBack.pauseData = new Date().getTime(); // 暂停的时间 | ||
| 1800 | - }else{ | ||
| 1801 | - GBCodePlayBack.htmlplayereditor.setValue(''); | ||
| 1802 | - } | ||
| 1803 | - } | ||
| 1804 | - | ||
| 1805 | - if(!playstatus){ | ||
| 1806 | - var playbackrecord = GBCodePlayBack.records, | ||
| 1807 | - currenteditor = ''; | ||
| 1808 | - var starttime = playbackrecord[0].intervaltime; | ||
| 1809 | - | ||
| 1810 | - for(var i=0;i<playbackrecord.length;i++){ | ||
| 1811 | - if(playbackrecord[i].trigger === 0){ | ||
| 1812 | - var timeoutcontroller = null; | ||
| 1813 | - var replayinterval = playbackrecord[i].intervaltime, | ||
| 1814 | - replay_enhancement_interval = GBCodePlayBack.replay_enhancement_value ; | ||
| 1815 | - if (i === 0) { | ||
| 1816 | - starttime=replayinterval; | ||
| 1817 | - if (GBCodePlayBack.pauseData) { | ||
| 1818 | - if (tag === 1) { | ||
| 1819 | - GBCodePlayBack.stopIntervalTime = playbackrecord[0].intervaltime - (GBCodePlayBack.pauseData - GBCodePlayBack.playRecordStart); | ||
| 1820 | - starttime = GBCodePlayBack.stopIntervalTime; | ||
| 1821 | - tag++; | ||
| 1822 | - }else{ | ||
| 1823 | - GBCodePlayBack.stopIntervalTime = GBCodePlayBack.stopIntervalTime - (GBCodePlayBack.pauseData - GBCodePlayBack.playRecordStart); | ||
| 1824 | - starttime = GBCodePlayBack.stopIntervalTime; | ||
| 1825 | - } | ||
| 1826 | - } | ||
| 1827 | - }else{ | ||
| 1828 | - starttime = parseInt(starttime) + parseInt(replayinterval); | 1851 | + $('#play').data('status', !playstatus); |
| 1852 | + | ||
| 1853 | + console.log(recordtimeoutcontrolls) | ||
| 1829 | 1854 | ||
| 1830 | - if (GBCodePlayBack.pauseData && GBCodePlayBack.pauseData - playbackrecord[i-1].playTime > 0) { | ||
| 1831 | - GBCodePlayBack.stopIntervalTime = GBCodePlayBack.pauseData - playbackrecord[i-1].playTime; | ||
| 1832 | - starttime = GBCodePlayBack.stopIntervalTime + parseInt(replayinterval); | ||
| 1833 | - } | ||
| 1834 | - } | ||
| 1835 | - timeoutcontroller = setTimeout( GBCodePlayBack.changeValueCallback(playbackrecord[i]), starttime/GBCodePlayBack.speed ); | ||
| 1836 | - GBCodePlayBack.recordtimeoutcontrolls.push(timeoutcontroller); | ||
| 1837 | - } | ||
| 1838 | - currenteditor = playbackrecord[i].editor; //标示当前的编辑器, 以便判断是否需要切换编辑器并添加预留500毫秒时间 | ||
| 1839 | - } | ||
| 1840 | - // 记录播放的时间 | ||
| 1841 | - GBCodePlayBack.playRecordStart = new Date().getTime(); | ||
| 1842 | - }else{ | ||
| 1843 | - var recordtimeoutcontrolls = GBCodePlayBack.recordtimeoutcontrolls; | ||
| 1844 | - for(var i=0;i<recordtimeoutcontrolls.length;i++){ | ||
| 1845 | - clearTimeout(recordtimeoutcontrolls[i]); | ||
| 1846 | - } | ||
| 1847 | - GBCodePlayBack.recordtimeouts = []; | ||
| 1848 | - } | ||
| 1849 | - $(this).data('status', !playstatus); | ||
| 1850 | } | 1855 | } |
| 1851 | 1856 | ||
| 1857 | + | ||
| 1858 | + | ||
| 1852 | 1859 | ||
| 1853 | var htmlhlLine = null, | 1860 | var htmlhlLine = null, |
| 1854 | csshlLine = null, | 1861 | csshlLine = null, |
| @@ -1977,22 +1984,24 @@ $(function(){ | @@ -1977,22 +1984,24 @@ $(function(){ | ||
| 1977 | }, | 1984 | }, |
| 1978 | error: function(data){ | 1985 | error: function(data){ |
| 1979 | console.log('播放结束错误'); | 1986 | console.log('播放结束错误'); |
| 1980 | - console.log(data); | ||
| 1981 | } | 1987 | } |
| 1982 | }); | 1988 | }); |
| 1983 | } | 1989 | } |
| 1984 | 1990 | ||
| 1985 | GBCodePlayBack.firstPlay = 1; | 1991 | GBCodePlayBack.firstPlay = 1; |
| 1986 | - GBCodePlayBack.triggertotal = 0; | ||
| 1987 | - console.log(GBCodePlayBack.records) | 1992 | + |
| 1988 | /* 初始化播放 */ | 1993 | /* 初始化播放 */ |
| 1994 | + $('#play').data('status', 0); | ||
| 1989 | for (var i = 0; i < GBCodePlayBack.records.length; i++) { | 1995 | for (var i = 0; i < GBCodePlayBack.records.length; i++) { |
| 1990 | GBCodePlayBack.records[i].trigger = 0; | 1996 | GBCodePlayBack.records[i].trigger = 0; |
| 1991 | } | 1997 | } |
| 1992 | - | ||
| 1993 | - for (var i = 0; i < GBCodePlayBack.recordtimeoutcontrolls.length; i++) { | ||
| 1994 | - clearTimeout(GBCodePlayBack.recordtimeoutcontrolls[i]); | 1998 | + for(var i=0;i<GBCodePlayBack.recordtimeoutcontrolls.length;i++){ |
| 1999 | + clearTimeout(GBCodePlayBack.recordtimeoutcontrolls[i]); | ||
| 1995 | } | 2000 | } |
| 2001 | + GBCodePlayBack.recordtimeoutcontrolls = []; | ||
| 2002 | + | ||
| 2003 | + GBCodePlayBack.pauseTime = null; | ||
| 2004 | + GBCodePlayBack.playRecordStart = null; | ||
| 1996 | 2005 | ||
| 1997 | console.log(GBCodePlayBack.records) | 2006 | console.log(GBCodePlayBack.records) |
| 1998 | if($('#readonly').length>0){ | 2007 | if($('#readonly').length>0){ |