2017-03-06 18 views
2

カメラとマイクの権限をユーザーから取得し、そのストリームをキャンバスに表示する小さなVue.jsコンポーネントを作成しようとしています。十分に簡単ですね。WebRTCコールバック内でプロパティが変更されたときにVue.js更新がトリガーされない

実際には、私はvideoタグのsrcプロパティを更新するためにVue.jsを取得できませんでしたので、変更がVueによって取得されているかどうかをテストするために単純なstatusメッセージを追加しました。彼らはそうではありません。 VueがgetUserMediaコールバック内でプロパティの変更を取得する方法を確認するにはどうすればよいですか?

ここにフィドルを参照してください:https://jsfiddle.net/49r0c4cf/

をそしてここでコードがあります:

<template> 
    <div> 
    <button @click="getPermissions()" >Get permissions</button> 
    <video v-bind:src="videoStreamSrc" autoplay></video> 
    <h1>{{status}}</h1> 
    </div> 
</template> 

<script> 
export default { 
    data() { 
    return { 
     videoStreamSrc: null, 
     status: 'default', 
    }; 
    }, 
    methods: { 
    getPermissions() { 
     this.status = 'FETHCING'; 
     const vm = this; 
     navigator.mediaDevices.getUserMedia({ 
     video: true, 
     audio: true, 
     },() => { 
     // vm.videoStreamSrc = window.URL.createObjectURL(localMediaStream); 
     vm.$set('status', 'DONE'); 
     }, (err) => { 
     // eslint-disable-next-line 
     console.error(err); 
     }); 
    }, 
    }, 
}; 
</script> 

答えて

0

this documentationによると、あなたは...のような

navigator.mediaDevices.getUserMedia({ 
    video: true, 
    autio: true 
}).then(stream => { 
    this.status = 'DONE' 
}, err => { 
    console.error(err) 
}) 
をそれを使用する必要があります Promiseを返し getUserMedia

https://jsfiddle.net/49r0c4cf/1/

+0

くそー!私は実際の文書を開かないのは馬鹿だと感じます。私は盲目的にこの[HTML5Rocksのリンク](https://www.html5rocks.com/en/tutorials/getusermedia/intro/)に従って始めました – ArsalanDotMe

関連する問題