tencent cloud

Tencent Real-Time Communication

お知らせ・リリースノート
製品アップデート情報
Tencent Cloudオーディオビデオ端末SDKの再生アップグレードおよび承認チェック追加に関するお知らせ
TRTCアプリケーションのサブスクリプションパッケージサービスのリリースに関する説明について
製品の説明
製品概要
基礎概念
製品の機能
製品の強み
ユースケース
性能データ
購入ガイド
Billing Overview
無料時間の説明
Monthly subscription
Pay-as-you-go
TRTC Overdue and Suspension Policy
課金に関するよくあるご質問
Refund Instructions
初心者ガイド
Demo体験
Call
コンポーネントの説明(TUICallKit)
Activate the Service
Run Demo
クイック導入
オフライン通知
Conversational Chat
クラウドレコーディング(TUICallKit)
AI Noise Reduction
インターフェースのカスタマイズ
Calls integration to Chat
Additional Features
No UI Integration
Server APIs
Client APIs
Solution
ErrorCode
公開ログ
よくある質問
ライブ配信
Billing of Video Live Component
Overview
Activating the Service (TUILiveKit)
Demo のクイックスタート
No UI Integration
UI Customization
Live Broadcast Monitoring
Video Live Streaming
Voice Chat Room
Advanced Features
Client APIs
Server APIs
Error Codes
Release Notes
FAQs
RTC Engine
Activate Service
SDKのダウンロード
APIコードサンプル
Usage Guidelines
クライアント側 API
高度な機能
RTC RESTFUL API
History
Introduction
API Category
Room Management APIs
Stream mixing and relay APIs
On-cloud recording APIs
Data Monitoring APIs
Pull stream Relay Related interface
Web Record APIs
AI Service APIs
Cloud Slicing APIs
Cloud Moderation APIs
Making API Requests
Call Quality Monitoring APIs
Usage Statistics APIs
Data Types
Appendix
Error Codes
コンソールガイド
アプリケーション管理
使用統計
監視ダッシュボード
開発支援
Solution
Real-Time Chorus
よくあるご質問
課金関連問題
機能関連
UserSig関連
ファイアウォールの制限の対応関連
インストールパッケージの圧縮に関するご質問
AndriodおよびiOS関連
Web端末関連
Flutter関連
Electron関連
TRTCCalling Web関連
オーディオビデオ品質関連
その他のご質問
旧バージョンのドキュメント
TUIRoom(Web)の統合
TUIRoom (Android)の統合
TUIRoom (iOS)の統合
TUIRoom (Flutter)の統合
TUIRoom (Electron)の統合
TUIRoom APIのクエリー
クラウドレコーディングと再生の実現(旧)
Protocols and Policies
セキュリティコンプライアンス認証
セキュリティホワイトペーパー
情報セキュリティの説明
Service Level Agreement
Apple Privacy Policy: PrivacyInfo.xcprivacy
TRTC ポリシー
プライバシーポリシー
データ処理とセキュリティ契約
用語集

Web

PDF
聚焦模式
字号
最后更新时间: 2024-07-19 15:29:07
入室前や通話中に、ユーザーのネットワーク品質を検出し、ユーザーの現在のネットワーク品質を事前に判断することができます。ユーザーのネットワーク品質が低すぎる場合は、通常の通話品質を確保するためにネットワーク環境を変更するようにユーザーにアドバイスする必要があります。
このドキュメントでは、主にNETWORK_QUALITYイベントに基づいて通話前のネットワーク品質検出を実装する方法を紹介します。通話中にネットワーク品質を確認するには、NETWORK_QUALITYイベントを監視するのみです。

実装のフロー

1.TRTC.createClientを呼び出して、それぞれuplinkClientおよびdownlinkClientという2つのClientを作成します。 2. これら2つのClientは、同じルームに入ります。 3. uplinkClientを使用してプッシュし、NETWORK_QUALITYイベントを監視してアップリンクのネットワーク品質を確認します。 4. downlinkClientを使用してプルし、NETWORK_QUALITYイベントを監視してダウンリンクのネットワーク品質を確認します。 5. プロセス全体は約15秒間続く可能性があり、最後に平均ネットワーク品質を使用して、アップリンクとダウンリンクのネットワーク状態を大まかに判断します。
ご注意:
検出プロセスには少額の基本サービス料金が発生します。プッシュ解像度が指定されていない場合、デフォルトで640*480の解像度でプッシュします。

サンプルコード

let uplinkClient = null; // アップリンクネットワーク品質の確認に使用されます
let downlinkClient = null; //ダウンリンクネットワーク品質の確認に使用されます
let localStream = null; // テストされるストリームに使用されます
let testResult = {
// アップリンクネットワーク品質のデータを記録します
uplinkNetworkQualities: [],
// ダウンリンクネットワーク品質のデータを記録します
downlinkNetworkQualities: [],
average: {
uplinkNetworkQuality: 0,
downlinkNetworkQuality: 0
}
}

// 1. アップリンクネットワーク品質を確認します
async function testUplinkNetworkQuality() {
uplinkClient = TRTC.createClient({
sdkAppId: 0, // sdkAppIdを記入します
userId: 'user_uplink_test',
userSig: '', // uplink_testのuserSig
mode: 'rtc'
});

localStream = TRTC.createStream({ audio: true, video: true });
// 実際のサービスシーンに応じてvideo profileを設定します
localStream.setVideoProfile('480p');
await localStream.initialize();

uplinkClient.on('network-quality', event => {
const { uplinkNetworkQuality } = event;
testResult.uplinkNetworkQualities.push(uplinkNetworkQuality);
});

// テスト用ルームを追加します。競合を避けるためにルーム番号はランダムである必要があります
await uplinkClient.join({ roomId: 8080 });
await uplinkClient.publish(localStream);
}

// 2. ダウンリンクネットワーク品質を確認します
async function testDownlinkNetworkQuality() {
downlinkClient = TRTC.createClient({
sdkAppId: 0, // sdkAppIdを記入します
userId: 'user_downlink_test',
userSig: '', // userSig
mode: 'rtc'
});

downlinkClient.on('stream-added', async event => {
await downlinkClient.subscribe(event.stream, { audio: true, video: true });
// サブスクリプションに成功した後、ネットワーク品質イベントの監視を開始します
downlinkClient.on('network-quality', event => {
const { downlinkNetworkQuality } = event;
testResult.downlinkNetworkQualities.push(downlinkNetworkQuality);
});
})
// テスト用ルームを追加します。競合を避けるためにルーム番号はランダムである必要があります
await downlinkClient.join({ roomId: 8080 });
}

// 3. 確認を開始します
testUplinkNetworkQuality();
testDownlinkNetworkQuality();

// 4. 15秒後に確認を停止し、平均ネットワーク品質を計算します
setTimeout(() => {
// アップリンクの平均ネットワーク品質を計算します
if (testResult.uplinkNetworkQualities.length > 0) {
testResult.average.uplinkNetworkQuality = Math.ceil(
testResult.uplinkNetworkQualities.reduce((value, current) => value + current, 0) / testResult.uplinkNetworkQualities.length
);
}

if (testResult.downlinkNetworkQualities.length > 0) {
// ダウンリンクの平均ネットワーク品質を計算します
testResult.average.downlinkNetworkQuality = Math.ceil(
testResult.downlinkNetworkQualities.reduce((value, current) => value + current, 0) / testResult.downlinkNetworkQualities.length
);
}

// 確認が終了し、関連する状態がクリアされます。
uplinkClient.leave();
downlinkClient.leave();
localStream.close();
}, 15 * 1000);

結果の分析

上記の手順により、アップリンクの平均ネットワーク品質とダウンリンクの平均ネットワーク品質を取得できます。ネットワーク品質の列挙値は次のとおりです:
数値
意味
0
ネットワーク状態は不明で、現在のclientインスタンスがまだアップリンク/ダウンリンク接続を確立していないことを示しています
1
ネットワーク状態が優れています
2
ネットワーク状態が良好です
3
ネットワーク状態が一般です
4
ネットワーク状態が悪いです
5
ネットワーク状態が非常に悪いです
6
ネットワーク接続が切断されています。注:ダウンリンクネットワーク品質がこの値の場合、すべてのダウンリンク接続が切断されていることを示します
ご注意:
推奨事項:ネットワーク品質が3を超える場合は、ユーザーにネットワークを確認してネットワーク環境を変更するように提案する必要があります。そうでない場合、通常のオーディオビデオ通話を確保することが困難になります。
次のポリシーを使用して、帯域幅の消費を削減することもできます:
アップリンクネットワーク品質が3より大きい場合、LocalStream.setVideoProfile()インターフェースを使用してビットレートを低減したりLocalStream.muteVideo()を使用してビデオを閉じたりして、アップリンク帯域幅の消費を削減することができます。
ダウンリンクネットワーク品質が3より大きい場合、低画質ストリームをサブスクリプションしたり(高・低画質ストリーム伝送を有効にするを参照)オーディオのみをサブスクリプションしたりして、ダウンリンク帯域幅の消費を削減することができます。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈