Ziggeo : 如何在 ziggeo 记录器 V2 上隐藏控制面板

Posted

技术标签:

【中文标题】Ziggeo : 如何在 ziggeo 记录器 V2 上隐藏控制面板【英文标题】:Ziggeo : How to hide controls panel on the ziggeo recorder V2 【发布时间】:2019-03-31 22:19:23 【问题描述】:

我已经使用 ziggeo 一个星期了,发现它非常适合我的直播录制应用程序。 javascript api 完美运行。我能够创建一个记录器,通过使用可调用的方法 embedding.record() 和 embedding.stop() 根据经过的时间开始和停止记录。到目前为止,它工作得很好。但是,我找不到任何隐藏 V2 记录器上显示的控制面板(带有设置和记录按钮等)的嵌入参数。这是我的代码

% extends 'TraceBundle::layout.html.twig' %

% block stylesheets % 
     parent() 
    <link href=" asset('bundles/trace/css/loader.css') " type="text/css" rel="stylesheet" />
    <link rel="stylesheet" href="//assets-cdn.ziggeo.com/v1-stable/ziggeo.css" />
      <style>
      .navbar-default .navbar-nav > li > a 
    color:#337ab7;

</style>
% endblock %

% block content %
    <nav id="topnav" class="navbar navbar-default" role="navigation">
        <div class="container">
            <div class="navbar-header">
                <a href="#"><img id="brand-logo" src=" asset('bundles/trace/img/logo-epita.png') "    title="easyRECrue" /></a>
            </div>

            <div id="navbar-links-collapse" class="collapse navbar-collapse text-center">
                <ul class="nav navbar-nav navbar-center">
                    <li>
                        <a>Step 2/4: Practice</a>
                    </li>  
                </ul>

                <ul class="nav navbar-nav navbar-right">
                    <li>
                        <a>campaign.campaigntitle</a>
                    </li>    
                </ul>
            </div>
        </div>
    </nav>

    <div class="container">
    <div id="practice-question" data-applicant-id="applicant.id" data-random-string="randomstring">    
        <div class="row text-center">
            <h3>To Practice, tell us if this is your first video interview and what you think about it.</h3>
        </div>

        <div class="row text-center">
            <div class="video-div">    
                <video id="myVideo"   controls>
                    <source src="asset('bundles/trace/vid/mov_bbb.mp4')" type="video/mp4">
                </video>  
            </div>
            <p id="info"><b>!</b>This answer will not be sent to the recruiter</p>    
            <p id="save-warning" class="hidden" style="color:red">Your recording is getting saved, Please do not hit back or refresh..</p>

            <div class="row text-center" id="hdfvr-content"></div>

            <div id="thinktime" style="margin-top:-310px;"> </div>    
            <br>     
            <br>     
            <br>     
            <br>     
            <br>     
            <br>     
            <button class="btn btn-primary answer-now" type="button" value="answernow" data-timeleft="">Answer now</button>
            <div id="input-widget">
#                <br>#
                <form method="post" id="response" action=" path('practicequestionpage','uniquecode': uniquecode) ">
                <progress value="0" max="30" id="progressBar"></progress>
                <br>
                <br>
                <button class="btn btn-primary finished-answering hidden" type="button" value="finished">I've finished answering</button>
                <button class="btn btn-primary submit hidden" type="submit" name="submit" value="submit" onClick="removePipeRecorder();">Question answered, continue the process</button>
                </form>
            </div>    
        </div>
    </div>
    </div>
% endblock %      

% block javascripts %
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="//assets-cdn.ziggeo.com/v1-stable/ziggeo.js"></script>
    <script>ZiggeoApi.token = "r1a6fc911cd4e27b99d4c992e1e1d3b3";</script>
    <script>
        $(document).ready(function () 
            ZiggeoApi.Events.on("system_ready", function() 
            var embedding = new ZiggeoApi.V2.Recorder(
            element: document.getElementById("hdfvr-content"),
            attrs: 
                width: 320,
                height: 240,
                theme: "modern",
                themecolor: "red",
                skipinitial: "true",
                limit: 30,
                countdown: 0,
                localplayback: "false",
                //max take
                recordings: 1,
                picksnapshots: "false"
            
        );

            $('#input-widget').hide();
            $('#hdfvr-content').hide();
            $('#info').hide();

            var timeLeft = 30;
            var elem = document.getElementById('thinktime');
            var lefttime = 30;
            var maxduration = 30;
            var minduration = 10;
            // loader(circle) variables
            var time = 30;
            var initialOffset = '440';
            var i = 1;
            // remove video pause button
            var video = document.getElementById("myVideo");
            if(video)
            $('video').one('play', function () 
               video.removeAttribute("controls");  
            ); 

            $('#thinktime').hide();
            $('.answer-now').hide(); 

            document.getElementById('myVideo').addEventListener('ended',myHandler,false);  
            else 
            timerId = setInterval(countdown, 1000);
            $('.answer-now').show();    
            loader(time,initialOffset,i);
            

            function myHandler() 
                embedding.activate();
                $("#myVideo").remove();   
                $('#thinktime').show();
                $('#hdfvr-content').show();
                $('#info').show();
                $('.answer-now').show();
                timerId = setInterval(countdown, 1000);
                loader(time,initialOffset,i);
            

            // loader
            function loader(time,initialOffset,i) 
            /* Need initial run as interval hasn't yet occured... */
            $('.circle_animation').css('stroke-dashoffset', initialOffset-(1*(initialOffset/timeLeft)));

            var interval = setInterval(function() 
                    $('h2').text(i);
                    if (i == time)     
                      clearInterval(interval);
                      return;
                    
                    $('.circle_animation').css('stroke-dashoffset', initialOffset-((i+1)*(initialOffset/time)));
                    i++;  
                , 1000);
            elem.innerHTML = '<div class="item html"><h2>0</h2><svg   xmlns="http://www.w3.org/2000/svg"><g>\n\
                <circle id="circle" class="circle_animation" r="69.85699" cy="81" cx="81" stroke- stroke="#6fdb6f" fill="none">'
                '</circle></g></svg></div>';
            

            function countdown() 
              $('.answer-now').click(function()
                 $(this).data('clicked', true);
                );
              if (timeLeft == 0 || $('.answer-now').data('clicked'))                
                clearTimeout(timerId);
                embedding.record();
                $('#input-widget').show();
                $('#thinktime').hide();
                $('.answer-now').hide();
                var downloadTimer = setInterval(function()
                document.getElementById("progressBar").value = lefttime;
                lefttime--;

                if(lefttime == (maxduration-minduration))
                    $('.finished-answering').removeClass('hidden');
                    $('.finished-answering').click(function () 
                        clearInterval(downloadTimer);
                        embedding.stop();
                        $('#hdfvr-content').find("[data-selector='recorder-player']").css('margin-left','442px');
                        $('.record-icon').remove();
                        $('#save-warning').removeClass('hidden');
                        $('.finished-answering').addClass('hidden');
                        $('#progressBar').hide();
                    );
                
                if(lefttime == 0)
                  clearInterval(downloadTimer);
                    embedding.stop();
                    $('#hdfvr-content').find("[data-selector='recorder-player']").css('margin-left','442px');
                    $('.record-icon').remove();
                    $('#save-warning').removeClass('hidden');
                  $('#progressBar').hide();
                  $('.finished-answering').addClass('hidden');
                  
              ,1000);
               else                                                
              //  elem.innerHTML = '<h1>'+timeLeft+'</h1>';
                timeLeft--;
                $('.answer-now').data('timeleft', timeLeft);

              
             
            //hide/show input widget ends here

            embedding.on("recording", function () 
                $("#hdfvr-content").append('<span style="color:red; margin:175px 0px 0px -25px; position:absolute;" class="record-icon glyphicon glyphicon-record"></span>');
            );   

            embedding.on("uploaded", function () 
                $('#save-warning').addClass('hidden');
                $('.submit').removeClass('hidden');
            );
        );
    );
    </script>
% endblock %

我知道对于基于 HTML 的记录器,可能有一种方法可以使用 css 隐藏控制面板,但是基于 flash 的呢?你如何从基于闪存的记录器中隐藏它?等待回复...

问候, 乌特卡什

【问题讨论】:

【参考方案1】:

您可以通过在页面上添加 CSS 样式轻松实现此目的。要隐藏按钮(设置、相机和操作按钮),您可以使用此代码

div[data-selector="controlbar"] 
    display: none;

如果你想进一步隐藏半透明栏(它是子元素),你可以使用这个

.ba-videorecorder-theme-modern-dashboard 
    display: none;

我希望这对您的问题有所帮助。请注意,如果您有多个录音,这将隐藏页面中的所有控制栏。

【讨论】:

感谢您的回答,但这只是基于 HTML 的记录器解决方案。闪存呢? 闪光灯部分仅显示相机画面。控件是 CSS HTML,就像使用 WebRTC 时一样。 因此您可以在使用 Flash 的刻录机上使用相同的方法。 (对不起,我忘了提到这一点,我无法编辑评论)

以上是关于Ziggeo : 如何在 ziggeo 记录器 V2 上隐藏控制面板的主要内容,如果未能解决你的问题,请参考以下文章

高清录制 - Ziggeo Recorder v2 JS

如何将 Ziggeo Sdk 集成到 Ionic App

我需要将创建的视频发送到 ziggeo 的网络服务

Ziggeo 错误 setPreviewTexture 使用 Fragment 失败

如何为 Android 创建 Ziggeo 嵌入式录像机

Ziggeo SDK 视频播放器 - 获取寻道时间 [关闭]