App.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <template>
  2. <router-view></router-view>
  3. </template>
  4. <script lang="ts" setup>
  5. import { onMounted, ref } from 'vue';
  6. import { WebRTCClass } from '@/network/webRtc';
  7. import { useNetworkStore } from '@/store//network';
  8. const muted = ref(true);
  9. const localVideoRef = ref<HTMLVideoElement>();
  10. const networkStore = useNetworkStore();
  11. let stream: MediaStream;
  12. onMounted(() => {
  13. // const instance = new WebSocketClass({ url: 'ws://localhost:4300' });
  14. // networkStore.updateWsMap(roomId.value, instance);
  15. // instance.wsInstance?.on(wsConnectStatus.connect, () => {
  16. // console.log('连接websocket成功!');
  17. // handleWebRtc();
  18. // });
  19. });
  20. async function handleWebRtc() {
  21. const webrtc = new WebRTCClass();
  22. console.log(webrtc);
  23. const offer = await webrtc.createOffer();
  24. console.log(offer);
  25. }
  26. // Handles start button action: creates local MediaStream.
  27. function startAction() {
  28. // WARN navigator.mediaDevices在localhost和https才能用,http://192.168.1.103:8000局域网用不了
  29. navigator.mediaDevices
  30. .getUserMedia({ video: true, audio: true })
  31. .then((event) => {
  32. console.log('getUserMedia成功', event);
  33. stream = event;
  34. // if (!localVideoRef.value) return;
  35. // localVideoRef.value.srcObject = event;
  36. })
  37. .catch((err) => {
  38. console.log('getUserMedia失败', err);
  39. });
  40. }
  41. </script>
  42. <style lang="scss" scoped></style>