Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

Meeting.jsx 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import React, { PropsWithChildren } from 'react'
  2. import { JitsiMeeting } from "@jitsi/react-sdk";
  3. class Meeting extends React.Component {
  4. render() {
  5. return (
  6. <JitsiMeeting
  7. roomName={this.props.meetingId}
  8. getIFrameRef={handleJitsiIFrameRef2}
  9. configOverwrite={{
  10. e2ee: {
  11. externallyManagedKey: true
  12. }
  13. }}
  14. onApiReady={externalApi => {
  15. externalApi.on("videoConferenceJoined", async (event) => {
  16. let secretKey = new Uint8Array(Buffer.from(this.props.secretKeyBase64, 'base64'));
  17. let index = 0;
  18. let key = await window.crypto.subtle.importKey(
  19. "raw",
  20. secretKey,
  21. "AES-GCM",
  22. true,
  23. ["encrypt", "decrypt"]
  24. );
  25. await externalApi.setMediaEncryptionKey({
  26. key,
  27. index
  28. }).then(() => {
  29. console.log("SET MEDIA ENCRYPTION KEY");
  30. });
  31. setTimeout(() => {
  32. externalApi.toggleE2EE(true);
  33. }, 1_000);
  34. console.log('Jitsi Meet External API', externalApi);
  35. })
  36. }}
  37. />
  38. )
  39. }
  40. }
  41. const handleJitsiIFrameRef2 = (iframeRef) => {
  42. iframeRef.style.marginTop = '10px';
  43. iframeRef.style.border = '10px #df486f';
  44. iframeRef.style.padding = '5px';
  45. iframeRef.style.height = '50em';
  46. };
  47. export default Meeting;