video-call.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. const peerConfig = {
  2. peerHost: '101.200.151.183',
  3. peerPort: 9000,
  4. peerPath: '/',
  5. stunServer: 'stun:101.200.151.183:3478',
  6. turnServer: 'turn:101.200.151.183:3478',
  7. turnUserName: 'aaaaa',
  8. turnPassword: 'bbbbb'
  9. }
  10. // const peerConfig = {
  11. // peerHost: '203.175.169.43',
  12. // peerPort: 9000,
  13. // peerPath: '/',
  14. // stunServer: 'stun:203.175.169.43:3478',
  15. // turnServer: 'turn:203.175.169.43:3478',
  16. // turnUserName: 'aaaa',
  17. // turnPassword: 'aaaa'
  18. // }
  19. const initPeer = () => {
  20. return new Peer({
  21. //peer server 是用此域名的证书启动的,所以这里用域名
  22. host: peerConfig.peerHost,
  23. port: peerConfig.peerPort,
  24. path: peerConfig.peerPath,
  25. secure: false,
  26. config: {
  27. iceServers: [
  28. { urls: peerConfig.stunServer },
  29. {
  30. urls: peerConfig.turnServer,
  31. username: peerConfig.turnUserName,
  32. credential: peerConfig.turnPassword
  33. }
  34. ]
  35. }
  36. })
  37. }
  38. const PeerCmd = {
  39. /**
  40. * 请求视频通话
  41. */
  42. request: 1,
  43. /**
  44. * 拒绝视频通话
  45. */
  46. reject: 2,
  47. /**
  48. * 接受视频通话
  49. */
  50. accept: 3,
  51. /**
  52. * 取消视频通话
  53. */
  54. cancel: 4,
  55. /**
  56. * 正常挂断
  57. */
  58. ringOff: 5,
  59. /**
  60. * 忙碌挂断
  61. */
  62. busy: 6
  63. }
  64. const SendVideoCode = {
  65. //视频通话
  66. VIDEO: '8',
  67. //关闭视频
  68. CLOSE_ALL: '9'
  69. }
  70. const getLocalUserMedia = (constrains) => {
  71. if (window.navigator.mediaDevices.getUserMedia) {
  72. return window.navigator.mediaDevices.getUserMedia(constrains)
  73. }
  74. throw new Error('unable to get user media')
  75. }
  76. const getQueryVariable = (variable) => {
  77. let query = window.location.search.substring(1);
  78. //console.log(query);
  79. let vars = query.split("&");
  80. for (let i = 0; i < vars.length; i++) {
  81. let pair = vars[i].split("=");
  82. if (pair[0] === variable) {
  83. return pair[1];
  84. }
  85. }
  86. return "";
  87. }