Style the default “No video source” / “No video permissions” black rectangle











up vote
0
down vote

favorite












When the user is prompted for a permission on Safari, the video element is shown as a black rectangle with a strikethrough play button. How do I change this element's styling? Does it have a specific ID / class / tag?



I'm using Quagga JS as a barcode scanner. AFAIK Quagga creates a video element, then asks for camera permission. The optimal result would be to hide the element using display:none;, but I can't think of any way to accomplish this. I need the element to display the camera feed once the scanner has its permission, but before that it should either paint the screen black or be hidden.



safari video css issue










share|improve this question




























    up vote
    0
    down vote

    favorite












    When the user is prompted for a permission on Safari, the video element is shown as a black rectangle with a strikethrough play button. How do I change this element's styling? Does it have a specific ID / class / tag?



    I'm using Quagga JS as a barcode scanner. AFAIK Quagga creates a video element, then asks for camera permission. The optimal result would be to hide the element using display:none;, but I can't think of any way to accomplish this. I need the element to display the camera feed once the scanner has its permission, but before that it should either paint the screen black or be hidden.



    safari video css issue










    share|improve this question


























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      When the user is prompted for a permission on Safari, the video element is shown as a black rectangle with a strikethrough play button. How do I change this element's styling? Does it have a specific ID / class / tag?



      I'm using Quagga JS as a barcode scanner. AFAIK Quagga creates a video element, then asks for camera permission. The optimal result would be to hide the element using display:none;, but I can't think of any way to accomplish this. I need the element to display the camera feed once the scanner has its permission, but before that it should either paint the screen black or be hidden.



      safari video css issue










      share|improve this question















      When the user is prompted for a permission on Safari, the video element is shown as a black rectangle with a strikethrough play button. How do I change this element's styling? Does it have a specific ID / class / tag?



      I'm using Quagga JS as a barcode scanner. AFAIK Quagga creates a video element, then asks for camera permission. The optimal result would be to hide the element using display:none;, but I can't think of any way to accomplish this. I need the element to display the camera feed once the scanner has its permission, but before that it should either paint the screen black or be hidden.



      safari video css issue







      ios css safari quaggajs






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 2 days ago

























      asked 2 days ago









      RubbelDieKatz

      365316




      365316
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          I've fixed it by hiding it via JavaScript and showing it once the Quagga Feedback has finished. Note that a pure CSS solution would be much prettier.



          // Hide the preview before it's fully initialised.
          $('#videoBoundingBox').hide();
          Quagga.init({
          inputStream: {
          name: "Live",
          type: "LiveStream",
          target: document.querySelector('#videoBoundingBox')
          },
          decoder: {
          readers: [
          "code_128_reader",
          "ean_reader"
          ]
          }
          }, function (err) {
          if (err) {
          console.log(err);
          setResult(err);
          err = err.toString();
          if (err.search("NotFoundError")) {
          // No camera found. The user is probably in an office environment.
          // Redirect to previous orders or show a background image of sorts.
          } else if (err.search("NotAllowedError")) {
          // The user has blocked the permission request.
          // We should ask them again just to be sure or redirect them.
          } else {
          // Some other error.
          }


          return;
          }
          // Hide the preview before it's fully initialised.
          $('#videoBoundingBox').show();
          setResult("Initialization finished. Ready to start");
          console.log("Initialization finished. Ready to start");
          Quagga.start();
          initializeQuaggaFeedback();
          });





          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203511%2fstyle-the-default-no-video-source-no-video-permissions-black-rectangle%23new-answer', 'question_page');
            }
            );

            Post as a guest
































            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            I've fixed it by hiding it via JavaScript and showing it once the Quagga Feedback has finished. Note that a pure CSS solution would be much prettier.



            // Hide the preview before it's fully initialised.
            $('#videoBoundingBox').hide();
            Quagga.init({
            inputStream: {
            name: "Live",
            type: "LiveStream",
            target: document.querySelector('#videoBoundingBox')
            },
            decoder: {
            readers: [
            "code_128_reader",
            "ean_reader"
            ]
            }
            }, function (err) {
            if (err) {
            console.log(err);
            setResult(err);
            err = err.toString();
            if (err.search("NotFoundError")) {
            // No camera found. The user is probably in an office environment.
            // Redirect to previous orders or show a background image of sorts.
            } else if (err.search("NotAllowedError")) {
            // The user has blocked the permission request.
            // We should ask them again just to be sure or redirect them.
            } else {
            // Some other error.
            }


            return;
            }
            // Hide the preview before it's fully initialised.
            $('#videoBoundingBox').show();
            setResult("Initialization finished. Ready to start");
            console.log("Initialization finished. Ready to start");
            Quagga.start();
            initializeQuaggaFeedback();
            });





            share|improve this answer

























              up vote
              0
              down vote













              I've fixed it by hiding it via JavaScript and showing it once the Quagga Feedback has finished. Note that a pure CSS solution would be much prettier.



              // Hide the preview before it's fully initialised.
              $('#videoBoundingBox').hide();
              Quagga.init({
              inputStream: {
              name: "Live",
              type: "LiveStream",
              target: document.querySelector('#videoBoundingBox')
              },
              decoder: {
              readers: [
              "code_128_reader",
              "ean_reader"
              ]
              }
              }, function (err) {
              if (err) {
              console.log(err);
              setResult(err);
              err = err.toString();
              if (err.search("NotFoundError")) {
              // No camera found. The user is probably in an office environment.
              // Redirect to previous orders or show a background image of sorts.
              } else if (err.search("NotAllowedError")) {
              // The user has blocked the permission request.
              // We should ask them again just to be sure or redirect them.
              } else {
              // Some other error.
              }


              return;
              }
              // Hide the preview before it's fully initialised.
              $('#videoBoundingBox').show();
              setResult("Initialization finished. Ready to start");
              console.log("Initialization finished. Ready to start");
              Quagga.start();
              initializeQuaggaFeedback();
              });





              share|improve this answer























                up vote
                0
                down vote










                up vote
                0
                down vote









                I've fixed it by hiding it via JavaScript and showing it once the Quagga Feedback has finished. Note that a pure CSS solution would be much prettier.



                // Hide the preview before it's fully initialised.
                $('#videoBoundingBox').hide();
                Quagga.init({
                inputStream: {
                name: "Live",
                type: "LiveStream",
                target: document.querySelector('#videoBoundingBox')
                },
                decoder: {
                readers: [
                "code_128_reader",
                "ean_reader"
                ]
                }
                }, function (err) {
                if (err) {
                console.log(err);
                setResult(err);
                err = err.toString();
                if (err.search("NotFoundError")) {
                // No camera found. The user is probably in an office environment.
                // Redirect to previous orders or show a background image of sorts.
                } else if (err.search("NotAllowedError")) {
                // The user has blocked the permission request.
                // We should ask them again just to be sure or redirect them.
                } else {
                // Some other error.
                }


                return;
                }
                // Hide the preview before it's fully initialised.
                $('#videoBoundingBox').show();
                setResult("Initialization finished. Ready to start");
                console.log("Initialization finished. Ready to start");
                Quagga.start();
                initializeQuaggaFeedback();
                });





                share|improve this answer












                I've fixed it by hiding it via JavaScript and showing it once the Quagga Feedback has finished. Note that a pure CSS solution would be much prettier.



                // Hide the preview before it's fully initialised.
                $('#videoBoundingBox').hide();
                Quagga.init({
                inputStream: {
                name: "Live",
                type: "LiveStream",
                target: document.querySelector('#videoBoundingBox')
                },
                decoder: {
                readers: [
                "code_128_reader",
                "ean_reader"
                ]
                }
                }, function (err) {
                if (err) {
                console.log(err);
                setResult(err);
                err = err.toString();
                if (err.search("NotFoundError")) {
                // No camera found. The user is probably in an office environment.
                // Redirect to previous orders or show a background image of sorts.
                } else if (err.search("NotAllowedError")) {
                // The user has blocked the permission request.
                // We should ask them again just to be sure or redirect them.
                } else {
                // Some other error.
                }


                return;
                }
                // Hide the preview before it's fully initialised.
                $('#videoBoundingBox').show();
                setResult("Initialization finished. Ready to start");
                console.log("Initialization finished. Ready to start");
                Quagga.start();
                initializeQuaggaFeedback();
                });






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 2 days ago









                RubbelDieKatz

                365316




                365316






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203511%2fstyle-the-default-no-video-source-no-video-permissions-black-rectangle%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest




















































































                    Popular posts from this blog

                    Schultheiß

                    Verwaltungsgliederung Dänemarks

                    Liste der Kulturdenkmale in Wilsdruff