• 13-04-2022, 23:48:08
    #1
    Kişisel Rütbe
    2 yıl olmuş yaşlanmışız. Bende vue ile uygulayarak bulduğum ekran kaydediciyi size hediye ediyorum. Vueyi öğrenin mantığını diyerekten.
    Demo:https://ismetceber.com.tr/video.html

    Kodu:
    <!DOCTYPE html>
    <html lang="en">
    <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>Video</title>
      <style>
    [v-cloak] {
        opacity: 0 !important;
    }
    #app{
      max-width:800px;
      margin:0 auto;
      text-align: center;
    }
    video{
      
    }
      </style>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    </head>
    <body>
    <div id="app" v-cloak>
      <p v-if="!inProgress">
        <button @click="start" type="button">Başlat</button>
      </p>
      <p v-else>
        <button @click="stop" type="button">Durdur</button>
      </p>
      <video ref="video" controls autoplay webkit-playsinline="true" playsinline="true" width="50%"></video>
      <video ref="playbackVideo" controls autoplay webkit-playsinline="true" playsinline="true" width="50%"></video>
    </div>
    <script>
     new Vue({
        el: '#app',
        data: {
            inProgress: false, 
            mediaDevices: null, 
            mediaRecorder: null, 
            mediaStreamTrack: null, 
            blob: null, 
        },
        mounted() {
    
        },
        methods: {
            isObjEmpty(obj) {
                return (
                    obj === undefined ||
                    obj === "undefined" ||
                    obj == null ||
                    obj === "" ||
                    obj.length === 0 ||
                    (typeof obj === "object" && Object.keys(obj).length === 0)
                );
            },
            start() {
                const mediaOpts = {
                    audio: true,
                    video: {
                        width: 1280, 
                        height: 720,
                        frameRate: { ideal: 100, max: 150 } 
                    }
                }
                if (!this.isObjEmpty(typeof navigator.mediaDevices)) {
                    navigator.mediaDevices.getDisplayMedia(mediaOpts).then(stream => {
                        this.inProgress = true;
                        this.mediaStreamTrack = stream;
                        const video = this.$refs.video;
                        if ("srcObject" in video) {
                            video.srcObject = stream
                        } else {
                            video.src = window.URL && window.URL.createObjectURL(stream) || stream
                        };
                        video.play();
                        this.mediaRecorder = new MediaRecorder(stream, {
                            audioBitsPerSecond: 1280000, 
                            videoBitsPerSecond: 8500000, 
                            mimeType: 'video/webm;codecs=h264' 
                        });
    
                        
                        this.mediaRecorder.start();
                        this.mediaRecorder.ondataavailable = e => {
                            this.blob = new Blob([e.data], {
                                'type': 'video/mp4'
                            });
                        }
                        this.mediaRecorder.onerror = e => {
                            console.error(e)
                        }
                        this.mediaRecorder.onstart = e => {
                            console.log('Başlat', e)
                        }
                        this.mediaRecorder.onstop = e => {
                            console.log('Durdur', e);
                            const url = window.URL && window.URL.createObjectURL(this.blob);
                            this.$refs.playbackVideo.src = url;
                        }
                        console.log('this.mediaRecorder', this.mediaRecorder);
                    }).catch(err => {
                        console.log(err);
                        alert('Bu tarayıcı ekran kaydını desteklemiyor');
                    })
                } else {
                    alert('Bu tarayıcı ekran kaydını desteklemiyor');
                }
    
            },
            stop() {
                this.inProgress = false;
                this.mediaStreamTrack.getVideoTracks().forEach(track => {
                    track.stop();
                })
                this.mediaRecorder.stop();
            },
        }
    });
    </script>
    </body>
    </html>
  • 14-04-2022, 00:05:40
    #2
    Çok teşekkürler.
  • 14-04-2022, 13:31:40
    #3
    çok teşekkürler kralsın hocam
  • 15-04-2022, 00:04:46
    #4
    Hocam Denedim Bunu Bilgisayarımda Bir Cmd Programı Açıldı Dün Ve Bu Gün de Açıldı ?
  • 15-04-2022, 00:19:24
    #5
    Kişisel Rütbe
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Hocam Denedim Bunu Bilgisayarımda Bir Cmd Programı Açıldı Dün Ve Bu Gün de Açıldı ?
    hocam cmdlik kod yok sadece ekran paylaşıyorsunuz