1.0.0 • Published 5 days ago

omnirtc-web v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
5 days ago

直播中台WebRTC SDK。如需接入,联系兰龙刚(lanlonggang@tal.com)张文博(zhangwenbo1@tal.com)

Omni_WebRTC

引入SDK

  • ES Module引入
import getRTCEngine from 'omnirtc-web';

加入RTC房间

  /**
   * 获取token,
   * 获取方式参考 https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=30835986
   * 有问题联系周伟伟(zhouweiwei3@tal.com)老师 
   **/
  const token = 'token';
  // 获取引擎实例
  // engine API详细 https://dev-webrtc.weclassroom.com/doc/classes/CoreRTC.CoreRTC-1.html
  const engine = getRTCEngine(token);

  // 加入RTC房间
  // client API详细 https://dev-webrtc.weclassroom.com/doc/classes/Client.Client-1.html
  const client = engine.createClient({
    mode: 'live',
    codec: 'h264'
  });

  // 监听会议相关事件
  client.on('user-joined', (user) => {
    console.log('有用户加入房间。', user.uid)
  })
  client.on('user-left', (user, reason) => {
    console.log('用户离开房间了。', user.uid)
  })

  // 有其他用户开始推流了
  client.on('user-published', async (user, mediaKind) => {
    console.log('用户开始推流了。', user.uid, mediaKind)

    // 在这里就可以拉取该用户的流了,也可以先保存user,延后再拉。
    const track = await client.subscribe(user, mediaKind);

    console.log('媒体流已就绪,可以播放。', user.uid, mediaKind);
    if (mediaKind === 'audio') {
      track.play();
    }

    if (mediaKind === 'video') {
      track.play('video-dom');
    }
  })
  client.on('user-unpublished', (user, mediaKind) => {
    console.log('用户停止推流了。', user.uid, mediaKind)
  })

  client.join().then((uid) => {
    console.log('您已经加入房间了。您的用户ID:', uid)
  });
  ...

推送媒体流

  • 推送媒体流必须在调用client.join之后
  // 打开摄像头和麦克风
  const tracks = await engine.createMicrophoneAndCameraTracks();
  // 推送音视频流
  await client.publish(tracks);

拉取远端流

  • 必须在收到远端用户user-published之后再调用client.subsribe
  // 拉取远端用户音频流
  const audioTrack = await client.subscribe(user, 'audio');
  audioTrack.play();

  // 拉取远端用户视频流
  const videoTrack = await  client.subscribe(user, 'video');
  videoTrack.play('video-dom');

注意事项

  • 建议开发者捕获播放失败的事件
  engine.onAudioAutoplayFailed = () => {
    console.log('音频播放失败。')
    // 建议用户和页面交互后再调用track.play()
    // 参考https://www.jianshu.com/p/c3c6944eed5a
  }
1.0.2-beta.0

5 days ago

1.0.1-beta.0

6 days ago

1.0.0

19 days ago

0.1.0-beta.9

2 months ago

0.1.0-beta.7

2 months ago

0.1.0-beta.6

2 months ago

0.1.0-beta.8

2 months ago

0.1.0-beta.5

2 months ago

0.1.0-beta.4

2 months ago

0.1.0-beta.3

2 months ago

0.1.0-beta.2

2 months ago

0.1.0-beta.1

2 months ago

0.1.0-beta.0

2 months ago

0.0.21

2 months ago

0.0.19

1 year ago

0.0.18

2 years ago

0.0.7-beta

2 years ago

0.0.6-beta

2 years ago

0.0.5

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago