AgoraWebSDK-NGで音声のミュート機能を作る

ツイート
2021年05月20日
2021年05月28日

環境

  • vue: ^2.6.11
  • agora-rtc-sdk-ng: ^4.3.0

ミュート処理(localAudioTrackの非活性化)

setEnabled()を使い、localAudioTrackmute,unmuteを実現する。 localAudioTrack._enabledプロパティを確認し、切り替えさせる。

js
async toggleMuteLocalAudioTrack () { if (this.rtc.localAudioTrack && this.rtc.localAudioTrack._enabled) { await this.rtc.localAudioTrack.setEnabled(false) } else { await this.rtc.localAudioTrack.setEnabled(true) } }

close createの注意点

if条件式で、localAudioTrackの有無を確認していたが、close()した場合、localAudioTrackは使えなくなるが、オブジェクトが残るので、if条件式を消す。

localAudioTrack作成の処理

変更前

js
if (!this.rtc.localAudioTrack) { this.rtc.localAudioTrack = await AgoraRTC.createMicrophoneAudioTrack() }

変更後

js
this.rtc.localAudioTrack = await AgoraRTC.createMicrophoneAudioTrack()

localAudioTrackを閉じる処理

ローカルトラックを閉じて、占有しているオーディオおよびビデオリソースを解放します。 ローカルトラックを閉じると、それを再利用することはできなくなります。

js
if (this.rtc.localAudioTrack) { this.rtc.localAudioTrack.close() }

参加しているユーザーの状態を取得したい時

1.チャネルに入った時 2.自分がミュートにした時 3.自分がミュートを解除した時 4.他の人がミュートのした時 5.他の人がミュートを解除のした時

リモートユーザーの状態が取得できるイベント・プロパティ

  • user-published
  • user-unpublished
  • user-info-update
  • rtc.client.remoteUsers

_audio_enabled__audio_muted_という値が音声状態を表しているので、ここを見る。

参考