index.html 16.4 KB
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>互动编程</title>
    <link rel="stylesheet" href="css/responsive/css/bootstrap.min.css">
    <link href="css/validationEngine.jquery.css" rel="stylesheet">
    <link href="css/codemirror.css" rel="stylesheet">
    <link href="css/cm-theme/gbtags.css" rel="stylesheet">
    <link href="css/cm-theme/gbtags-dark.css" rel="stylesheet">
    <link href="css/main.css" rel="stylesheet">

    <script src="js/jquery-1.7.1.js"></script>
    <script src="js/bootstrap.js"></script>
    <script src="js/spin.js"></script>
    <script src="js/ladda.js"></script>
    <script src="js/bootstrapslider.js"></script>
    <script src="js/jquery-ui-1.8.20.custom.js"></script>
    <script src="js/codemirror.js"></script>
    <!-- <script src="js/handlebars-1.3.js"></script> -->
    <script src="js/emmet.js"></script>
    <script  src="js/jshint-2.6.min.js"></script>
    <script  src="js/jstorage.js"></script>
    <!-- <script  src="js/jquery.fileupload.js"></script> -->
    <script  src="js/jquery.validationEngine.js"></script>
    <script  src="js/jquery.validationEngine-zh.js"></script>
    <script  src="js/jquery.isotope.js"></script>
    
    <script src="js/identityService.js"></script>
    <script src="js/engine.js"></script>

    <script src="js/gbreplayer.js"></script>

    <script src="js/gbdebug/mode/xml/xml.js"></script>
    <script src="js/gbdebug/mode/javascript/javascript.js"></script>
    <script src="js/gbdebug/mode/css/css.js"></script>
    <script src="js/gbdebug/mode/htmlmixed/htmlmixed.js"></script>
    
    

</head>
<body>
    <div class="real-program-title">
        <div class="back">
            <span class="glyphicon glyphicon-arrow-left">
                返回课程
            </span> 
            <span>| 我的课程</span>
        </div>
        <div class="save-wrap">
            <a id="savecorde">保存</a>
            <a id="cancel">关闭</a>
        </div>
        
    </div>
    <div class="real-program-content">
        <div class="row">
            <div class="col-md-8" id="editorpanel">
                <div id="recordpanel" class="panel panel-default">
                    <!-- 头部语言 -->
                    <div class="panel-heading">
                        <div class="btn-toolbar" role="toolbar">
                            <div class="btn-group btn-group-lg" id="editorwrapper">
                                <!-- <button type="button" class="btn btn-default" id="allbutton" title="全部代码" data-editorname="all">全部</button> -->
                                <button type="button" class="btn btn-default btn-primary" id="htmlbutton" title="HTML代码" data-editorname="html">HTML</button>
                                <button type="button" class="btn btn-default" id="cssbutton" title="CSS代码" data-editorname="css">CSS</button>
                                <button type="button" class="btn btn-default" id="jsbutton" title="Javascript代码" data-editorname="js">JS</button>
                            </div>
                        </div>
                    </div>

                    <!-- 录音播放区域 -->
                    <div class="recording">
                        <div class="play">
                            <span class="glyphicon glyphicon-stop"></span>
                        </div>
                        <audio id="audio" controls autoplay></audio>
                        <input type="button" id="startRec" value="录音" />
                        <input type="button" id="stopRec" value="录制完成" />
                        <input type="button" id="playRec" value="播放" disabled="disabled" />
                        <!-- <input onclick="uploadAudio(this)" type="button" id="submitRec" value="提交" disabled="disabled" /> -->
                    </div>

                    <!-- 编辑播放代码区域 -->
                    <div class="panel-body">
                        <ul class="nav nav-tabs" id="recordertab">
                            <li class="active" style="margin-left: 28PX;">
                                <a href="#recordzone" data-toggle="tab"><span class="glyphicon glyphicon-record"></span><p class="hidden-xs hidden-sm pull-right">&nbsp;录制区</p></a>
                            </li>
                            <li>
                                <a href="#replayzone" data-toggle="tab"><span class="glyphicon glyphicon-play"></span><p class="hidden-xs hidden-sm pull-right">&nbsp;录制预览区</p></a>
                            </li>
                            <li class="clearfix"></li>
                        </ul>
                        <div class="tab-content" style="position:relative;">
                            <div class="tab-pane active" id="recordzone">
                                <textarea id="HTMLeditor" title="HTML"></textarea>
                                <textarea id="CSSeditor" title="CSS"></textarea>
                                <textarea id="JSeditor" title="Javascript"></textarea>
                            </div>
                            <div class="tab-pane" id="replayzone">
                                <textarea id="HTMLplayer"></textarea>
                                <textarea id="CSSplayer"></textarea>
                                <textarea id="JSplayer"></textarea>
                            </div>
                        </div>
                    </div>

                </div>

            </div>
            <div class="col-md-4" id="previewpanel">
                <div id="resultpanel" class="panel panel-default">
                    <div class="panel-heading">
                        <div class="btn-group">
                            <button type="button" class="btn btn-success" id="play" data-status="0" title="代码播放或者暂停" style="display: none;"><span class="glyphicon glyphicon-play"></span></button>
                            <!-- <button type="button" class="btn btn-success" id="replay" title="重新回放"><span class="glyphicon glyphicon-repeat"></span></button> -->
                            <p id="replay" onclick="playRecording(this)" title="重新回放"><span class="play-text">预览录制</span><span class="glyphicon glyphicon-repeat play-icon"></span></p>

                        </div>
                        <!-- 修改播放速度 -->
                        <div class="btn-group dropdown" id="playspeed" style="display: none;">
                            <button type="button" class="btn btn-default" title="播放速度">
                                <span class="glyphicon glyphicon-forward"></span><span id="selectedspeed" data-speed="1">x1</span>
                            </button>
                            <button type="button" id="preparespeed" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                                <span class="caret"></span>
                                <span class="sr-only">Toggle Dropdown</span>
                            </button>
                            <ul class="dropdown-menu" role="menu" id="speedlist">
                                <li><a href="#" data-speed="1" title="缺省速度"><span class="glyphicon glyphicon-forward"></span>x1</a></li>
                                <li><a href="#" data-speed="2" title="速度x2"><span class="glyphicon glyphicon-forward"></span>x2</a></li>
                                <li><a href="#" data-speed="4" title="速度x4"><span class="glyphicon glyphicon-forward"></span>x4</a></li>
                            </ul>
                        </div>
                        <!-- <div class="btn-group pull-right" id="fontendrun">
                            <button id="runnow" type="button" class="btn btn-default" title="手动运行代码" disabled="disabled"><span class="glyphicon glyphicon-play-circle"></span>&nbsp;运行</button>
                            <button id="autorun" type="button" class="btn btn-primary" title="切换自动/手动运行代码" data-autorun="1"><span class="glyphicon glyphicon-retweet"></span></button>
                        </div> -->
                        <div class="btn-group pull-right" id="comprunbtngrp"></div>
                        <div class="btn-group pull-right">
                            <button id="resizepreview" type="button" class="btn btn-default" title="缩放预览窗口"><span class="glyphicon glyphicon-resize-full"></span></button>
                        </div>
                        <div class="clearfix"></div>
                        <!-- <div class="replayprogress progress slider" style="margin: 10px 0;">
                            <div id="replayprogressbar" class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;">
                                <span class="sr-only">0%</span>
                            </div>
                        </div>
                        <div id="totaltimebar" class="hidden">
                            <div class="pull-left text-primary small">0:00</div>
                            <div class="pull-right text-primary small"><span id="totaltime"></span></div>
                            <div class="clearfix"></div>
                        </div> -->
                    </div>
                    <div class="panel-body hidden" id="cmprun-output">
                        <div id="resultoutput" style="overflow:auto;">
                            <!-- Nav tabs -->
                            <ul class="nav nav-tabs" role="tablist" id="cmprun-tabs">
                                <li class="active"><a href="#stdin" role="tab" data-toggle="tab" class="text-warning">标准输入</a></li>
                                <li><a href="#cmpinfo" role="tab" data-toggle="tab" class="text-warning">编译信息</a></li>
                                <li><a href="#stderr" role="tab" data-toggle="tab" class="text-danger">错误输出</a></li>
                                <li><a href="#output" role="tab" data-toggle="tab" class="text-success">运行结果</a></li>
                            </ul>
                            <!-- Tab panes -->
                            <div class="tab-content">
                                <div class="tab-pane active padall15" id="stdin">
                                    <input type="text" class="form-control" id="input" placeholder="标准输入">
                                </div>
                                <div class="tab-pane padall15" id="cmpinfo">...</div>
                                <div class="tab-pane padall15" id="stderr">...</div>
                                <div class="tab-pane padall15" id="output">...</div>
                            </div>
                        </div>
                    </div>
                    <div class="panel-body" id="ifrcontainer">
                        <iframe id="resultiframe" frameBorder="0" width="100%"></iframe>
                    </div>
                </div>
            </div>
        </div>

    </div>
        
    <!-- 选择编程语言弹框 -->
   <!--  <div class="modal fade" id="startRecordModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog" style="max-width:600px;">
            <div class="modal-content">
                <div class="modal-header">
                    <h3 class="modal-title text-primary" id="myModalLabel">
                        <span class="glyphicon glyphicon-expand"></span>&nbsp;录制或分享代码
                    </h3>
                </div>
                <div class="modal-body" style="text-align:center;">
                    <h4 class="text-default">选择编程语言:</h4>
                    <div class="pad20"></div>
                    <div id="selecttype">
                        <button class="btn btn-default btn-primary" data-type="fragmenthtml" data-selected="1" title="生成前端HTML,CSS,Javascript模板">HTML/CSS/JS</button>
                        <button class="btn btn-default" data-type="java" data-selected="0" title="生成标准Java程序模板">Java</button>
                        <button class="btn btn-default" data-type="objective-c" data-selected="0" title="生成标准Objective-C程序模板">Objective-C</button>
                        <button class="btn btn-default" data-type="php" data-selected="0" title="生成标准PHP程序模板">PHP</button>
                    </div>
                    <h4 id="startrecord_desc" class="text-defaut text-center well">
                        <p><i class="glyphicon glyphicon-question-sign"></i>&nbsp;如何录制课程? </p>
                        <small>在“课程录制区”代码编辑器中输入代码,立刻开始录制 ...</small>
                    </h4>
                </div>
                <div class="modal-footer">
                    <button id="select_type_btn" type="button" class="btn btn-primary" data-dismiss="modal"><span class="glyphicon glyphicon-record"></span>&nbsp;开始</button>
                </div>
            </div>
        </div>
    </div> -->

    <div id="editor-popover" class="popover gbinline-popover top fade" style="display: block;z-index:10000;position:absolute;">
        <div class="arrow gbinline-arrow" style="left:20%;"></div>
        <h3 class="popover-title" style="display: none;"></h3>
        <div class="popover-content">test</div>
    </div>
    
    <!-- 覆盖层 -->
    <div class="modal-backdrop fade in hidden" id="gbloading" style="opacity:.9;height:100%;width:100%;">
        <div class="text-center" style="margin:50px auto;opacity:1;color:#EEE;">
            <h3 class="text-default"><span class="glyphicon glyphicon-flag"></span>&nbsp;正在同步已录制的代码...</h3>
            <p class="loading"></p>
        </div>
    </div>
    
    <!-- 倒计时 -->
    <div id="countdown" style="display: none;"></div>

    <script src="js/recorder/Myna.js"></script>
    <script src="js/recorder/recorder.js"></script>
    <script>
        var global_trigger_record = 1;
        var recorder;

        var audio = document.querySelector('audio');
        // var audio = document.getElementById('audio');

        function startRecording() {
           HZRecorder.get(function(rec) {
               recorder = rec;
               recorder.start();
           });
        }

        function stopRecording() {
           recorder.stop();
        }

        function playRecording() {

           recorder.play(audio);
        }
    </script>
    <script>
    var global_trigger_record = 1;
    var recorder;
    var startRec = $('#startRec');
    var stopRec = $('#stopRec');
    var playRec = $('#playRec');
    var submitRec = $('#submitRec');

    var audio = document.querySelector('audio');
    // var audio = document.getElementById('audio');

    // 播放录音
    $("#startRec").click(function(){
        startRecording();
    })
    function startRecording(obj) {
        HZRecorder.get(function(rec) {
            recorder = rec;
            recorder.start();
            startRec.val('录音中...').attr('disabled', 'disabled').prop("disabled", true);
            playRec.attr('disabled', 'disabled').prop("disabled", true);
            submitRec.attr('disabled', 'disabled').prop("disabled", true);
        });
        $("#countdown").css("display", "block")
    }

    // 停止录音
    $("#stopRec").click(function(){
        stopRecording()
    })
    function stopRecording() {
        recorder.stop();
        console.log(recorder)
        startRec.val('重新录音').removeAttr('disabled').prop("disabled", false);
        stopRec.val('录制完成').attr('disabled', 'disabled').prop("disabled", true);
        playRec.removeAttr('disabled').prop("disabled", false);
        submitRec.removeAttr('disabled').prop("disabled", false);
        // setTimeout(function(){
        //     stopRec.val('停止').removeAttr('disabled').prop("disabled", false);
        // }, 2000);
    }

    // 播放录音
    $("#playRec").click(function(){
        playRecording()
    })
    function playRecording() {
        recorder.play(audio);
        playRec.val('正在播放...').attr('disabled', 'disabled').prop("disabled", true);
        setTimeout(function(){
            alert
            playRec.val('播放').removeAttr('disabled').prop("disabled", false);
        }, 2000);
    }


    function uploadAudio(obj) {
        submitRec.attr('disabled', 'disabled').prop("disabled", true);
        alert('开发中...');
        setTimeout(function(){
            submitRec.removeAttr('disabled', 'disabled').prop("disabled", false);
        }, 1000)
    }
    </script>
</body>
</html>