zoukankan      html  css  js  c++  java
  • HTMLVideoElement.srcObject MediaStream MediaSource Blob File

    MediaSource

    <!DOCTYPE html>
    <html lang="zh">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            video {
                background: black;
                position: relative;
                left: 50%;
                transform: translate(-50%, 0);
            }
        </style>
    </head>
    
    <body>
        <video width="854" height="480" muted></video>
    
        <script>
            var video = document.getElementsByTagName('video')[0];
            video.oncanplay = () => video.play();
    
            var mediaSource = new MediaSource();
            var obj_url = URL.createObjectURL(mediaSource);
            video.src = obj_url; // blob:http://127.0.0.1:5500/629075b2-e0e2-4ebb-96a7-37a1d0ebed2c
            var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
    
            mediaSource.addEventListener('sourceopen', () => {
                var sourceBuffer = mediaSource.addSourceBuffer(`video/mp4; codecs="avc1.42E01E, mp4a.40.2"`);
    
                fetch(`https://nickdesaulniers.github.io/netfix/demo/frag_bunny.mp4`)
                    .then(async resp => {
                        var reader = resp.body.getReader();
    
                        sourceBuffer.onupdateend = async () => {
                            console.log(mediaSource.readyState); // open
                            const { done, value } = await reader.read();
                            if (done) {
                                return;
                            }
                            sourceBuffer.appendBuffer(value);
                        }
    
                        sourceBuffer.onupdateend();
                    });
            });
        </script>
    </body>
    
    </html>
    

    srcObject = MediaStream 播放摄像头

    <!DOCTYPE html>
    <html lang="zh">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            video {
                background: black;
                position: relative;
                left: 50%;
                transform: translate(-50%, 0);
            }
        </style>
    </head>
    
    <body>
        <video width="854" height="480"></video>
    
        <script>
            var video = document.getElementsByTagName('video')[0];
    
            navigator.mediaDevices.getUserMedia({ video: true, audio: false })
                .then(mediaStream => {
                    video.srcObject = mediaStream;
                    video.oncanplay = () => {
                        video.play();
                    };
                })
                .catch(err => {
                    console.log(err);
                    alert('对不起,无法获取您的摄像头!');
                });
        </script>
    </body>
    
    </html>
    

    END

  • 相关阅读:
    Eclipse报错:pom.xml web.xml is missing and <fainOnMissingWebXml> is set to true
    WebStrom之React Native之HelloWord 【Windows】
    React Native报错:This error often happens when you’re running the packager (local dev server) from a wrong folder
    'adb' 不是内部或外部命令,也不是可运行的程序 或批处理文件。【Windows】
    Spring Boot项目部署到tomcat启动失败404
    Codeforces Beta Round #51 D. Beautiful numbers 数位DP
    UOJ 34 FFT
    POJ 2773 容斥原理
    HTPJ 1268 GCD
    HDOJ 2082 生成函数
  • 原文地址:https://www.cnblogs.com/develon/p/15213626.html
Copyright © 2011-2022 走看看