Skip to main content

audio

Өөрийн audio-ны чанарыг тохируулах

roomClient.setAudioProfile(profile: QRTCAudioProfile)
  • profile: int - дууны чанарыг илэрхийлсэн тоон утга

enum QRTCAudioProfile {
AUDIO_PROFILE_STANDARD, // single channel 40kbps
AUDIO_PROFILE_HIGH, // single channel 128kbps
AUDIO_PROFILE_STANDARD_STEREO, // dual channel 40kbps
AUDIO_PROFILE_HIGH_STEREO // dual channel 192kbps
}

Дууны мэдээлэл авах ( Өөрийн )

roomClient.getAudioLocalStats()
  • RTCStatsReport төрлийн Promise буцаана. ( Микрофон холбогдоогүй тохиолдолд null утга буцаана )

let stats = await roomClient.getAudioLocalStats();
if(stats){
stats.forEach(report => {
console.log(`Report: ${report.type}`);
console.log(report);
});
}

Холбогдсон микрофонуудын жагсаалт авах

roomClient.getMicDevicesList()
  • QRTCMediaDeviceInfo төрлийн объектууд агуулсан жагсаалт буцна.

type QRTCMediaDeviceInfo = {
type: QRTCMediaDeviceType, // 1 ( QRTCMediaDeviceTypeAudioInput )
deviceId: string,
deviceName: string
}

Одоо ашиглаж буй микрофоныг солих

roomClient.setCurrentMic(deviceId: string)

  • deviceId: солих гэж буй микрофоны ID-г оруулах

Микрофон асаах ( Дуу дамжуулалт шууд эхлэнэ )

roomClient.startLocalAudio(mute: boolean)

Өөрийн дамжуулж буй дууг үргэлжлүүлэн дамжуулах, түр зогсоох

roomClient.muteLocalAudio(mute: boolean)
  • Өөрийн дууг үргэлжлүүлэн дамжуулахдаа mute = false, түр зогсоохдоо mute = true

Микрофон унтраах

roomClient.stopLocalAudio()

Холбогдсон спикерүүдийн жагсаалт авах

roomClient.getSpeakerDevicesList()
  • QRTCMediaDeviceInfo төрлийн объектууд агуулсан жагсаалт буцна.

type QRTCMediaDeviceInfo = {
type: QRTCMediaDeviceType, // 2 ( QRTCMediaDeviceTypeAudioOutput )
deviceId: string,
deviceName: string
}

Одоо ашиглаж буй спикерийг солих

roomClient.setCurrentSpeaker(deviceId: string, elements: any = [])

Бусад хэрэглэгчийн дууг хүлээж авах ( create consumer )

roomClient.startRemoteAudio(userId: string, qrtcAudio: HTMLAudioElement)
  • userAudioAvailable listener-тэй хамт ашиглана.

  • userId: Хүлээж авах хэрэглэгчийн Id ( Өрөөний Id + "_" + тухайн app дээрх хэрэглэгчийн ID roomId_userId )

  • qrtcAudio: Тухайн хэрэглэгчийн дууг хүлээж авах элемент ( HTMLAudioElement ) ( <audio> tag-тай холбоно )

Бусад хэрэглэгчийн дууг хүлээн авахаа түр зогсоох, үргэлжлүүлэх ( pause, resume consumer )

roomClient.muteRemoteAudio(userId: string, mute: boolean)
  • userId: Тухайн хэрэглэгчийн Id ( Өрөөний Id + "_" + тухайн app дээрх хэрэглэгчийн ID roomId_userId )

  • mute: true утгатай бол тухайн хэрэглэгчийн дууг түр зогсооно, false утгатай бол тухайн хэрэглэгчийн дууг үргэлжлүүлэн хүлээн авна.

Бусад хэрэглэгчийн дууг хүлээн авахаа зогсоох ( delete consumer )

roomClient.stopRemoteAudio(userId: string)
  • userId: Хүлээж авахаа зогсоох хэрэглэгчийн Id ( Өрөөний Id + "_" + тухайн app дээрх хэрэглэгчийн ID roomId_userId )

Бүх хэрэглэгчдийн дууг нээх, хаах ( өөрөөс бусад )

roomClient.muteAllRemoteAudios(mute: boolean)
  • Бүх хэрэглэгчдийн дууг нээхдээ mute = false, хаахдаа mute = true

Бусад хэрэглэгчийн дууны мэдээлэл авах

roomClient.getRemoteUserAudioStats(userId: string)
  • userId: string - Мэдээлэл авах хэрэглэгчийн ID

  • RTCStatsReport төрлийн Promise буцаана. ( Хэрэглэгч дуу дамжуулаагүй тохиолдолд null утга буцаана )


let stats = await roomClient.getRemoteUserAudioStats(userId);
if(stats){
stats.forEach(report => {
console.log(`Report: ${report.type}`);
console.log(report);
});
}

Listener

Бусад хэрэглэгч дуу ( аудио ) дамжуулах үед

roomClient.on( "userAudioAvailable", ( audioInfo ) => { } );
  • roomClient.startRemoteAudio method-той хамт ашиглана.

  • audioInfo: userId, available зэрэг хувьсагч агуулсан объект

  • userId: Дуу дамжуулж буй хэрэглэгчийн Id ( Өрөөний Id + "_" + тухайн app дээрх хэрэглэгчийн ID roomId_userId )

  • available: Тухайн хэрэглэгч дуу дамжуулах үед true, дуу дамжуулахаа зогсоох үед false утга дамжуулна.

Хэрэглэгчдийн дууны хэмжээ ( volume ) өөрчлөгдөх үед

roomClient.on( "userVoiceVolume", (volumeInfo) => { } );
  • volumeInfo: userVolumes, totalVolume зэрэг хувьсагч агуулсан объект

  • userVolumes: QRTCVolumeInfo төрлийн объектуудыг агуулсан array

  • totalVolume: Бусад хэрэглэгчдийн нийлбэр дууны хэмжээ ( 0-100-н хооронд байна. )


Хэрвээ хэн ч дуу гаргахгүй, ярихгүй байгаа тохиолдолд userVolumes нь хоосон, totalVolume нь 0 утгатай байна. Өөрөө дуу гаргаж буй тохиолдолд userId нь null байна. Мөн userVolumes нь зөвхөн дуу гаргаж буй хэрэглэгчдийг агуулна.


type QRTCVolumeInfo =
{
userId: string,
volume: number //Хэрэглэгчийн дууны хэмжээ 0-100-н хооронд байна.
}

Хэрэглэгч дуу гаргаж буй үед

roomClient.on( "userSpeaking", (userInfo) => { } );
  • userInfo: userId, action зэрэг хувьсагч агуулсан объект

  • userId: String - Дуу гаргаж буй хэрэглэгчийн Id ( Өрөөний Id + "_" + тухайн app дээрх хэрэглэгчийн ID roomId_userId )

  • action: String - Хэрэглэгч дуу гаргаж эхлэх үед "unmute", дуу гаргаж дуусах үед "mute" утгатай байна.