製品概要
製品の利点
応用シナリオ

機能モジュール | 主要なアクションと機能ポイント |
通話シグナル制御 | 発信、応答、拒否、切断 |
オーディオ・ビデオ通話 | ボイス通話、ビデオ通話 |
通話機能の制御 | マイク/カメラ/スピーカーのオン・オフ、スピーカーとハンズフリーの切り替え、カメラの切り替え、ウィンドウサイズの切り替え、ネットワーク状態の提示、通話時間の統計 |

TRTC_APP_SCENE_AUDIOCALLを選択する必要があります。入室ロールTRTCRoleTypeを指定しないでください。startLocalAudioを開始する時、音質パラメータを設定できます。ボイス通話モードではTRTC_AUDIO_QUALITY_SPEECHに設定することをお勧めします。TRTC_APP_SCENE_VIDEOCALLを選択する必要があります。入室ロールTRTCRoleTypeを指定しないでください。startLocalPreviewを呼び出し、SDKはカメラのプレビューのみをオンにし、enterRoomを呼び出すまでプッシュストリームを開始しません。startLocalAudioを開始する時、音質パラメータを設定できます。ビデオ通話モードではTRTC_AUDIO_QUALITY_SPEECHに設定することをお勧めします。startRemoteViewを呼び出してリモートビデオストリームをプルしてレンダリングし再生する必要があります。// マイクをオンにするmTRTCCloud.muteLocalAudio(false);// マイクをオフにするmTRTCCloud.muteLocalAudio(true);
// マイクをオンにする[self.trtcCloud muteLocalAudio:NO];// マイクをオフにする[self.trtcCloud muteLocalAudio:YES];
// スピーカーをオンにするmTRTCCloud.muteAllRemoteAudio(false);// スピーカーをオフにするmTRTCCloud.muteAllRemoteAudio(true);
// スピーカーをオンにする[self.trtcCloud muteAllRemoteAudio:NO];// スピーカーをオフにする[self.trtcCloud muteAllRemoteAudio:YES];
// カメラを開き、イン・アウトカメラとレンダリングコントロールを指定mTRTCCloud.startLocalPreview(isFrontCamera, videoView);// カメラをオフにするmTRTCCloud.stopLocalPreview();
// カメラを開き、イン・アウトカメラとレンダリングコントロールを指定[self.trtcCloud startLocalPreview:self.isFrontCamera view:self.videoView];// カメラをオフにする[self.trtcCloud stopLocalPreview];
// スピーカーに切り替えるmTRTCCloud.getDeviceManager().setAudioRoute(TXDeviceManager.TXAudioRoute.TXAudioRouteEarpiece);// ハンズフリーに切り替えるmTRTCCloud.getDeviceManager().setAudioRoute(TXDeviceManager.TXAudioRoute.TXAudioRouteSpeakerphone);
// スピーカーに切り替える[[self.trtcCloud getDeviceManager] setAudioRoute:TXAudioRouteEarpiece];// ハンズフリーに切り替える[[self.trtcCloud getDeviceManager] setAudioRoute:TXAudioRouteSpeakerphone];
// 現在がインカメラかどうかを判断boolean isFrontCamera = mTRTCCloud.getDeviceManager().isFrontCamera();// 前後カメラの切り替え、true: :インカメラに切り替える、; false: :アウトカメラに切り替えるmTRTCCloud.getDeviceManager().switchCamera(!isFrontCamera);
// 現在がインカメラかどうかを判断BOOL isFrontCamera = [[self.trtcCloud getDeviceManager] isFrontCamera];// 前後カメラの切り替え、true: :インカメラに切り替える、; false: :アウトカメラに切り替える[[self.trtcCloud getDeviceManager] switchCamera:!isFrontCamera];
// ローカルプレビュー画面のレンダリングコントロールを更新mTRTCCloud.updateLocalView(previewView);// リモートユーザーのビデオレンダリングコントロールを更新mTRTCCloud.updateRemoteView(userId, TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG, previewView);
// ローカルプレビュー画面のレンダリングコントロールを更新[self.trtcCloud updateLocalView:self.previewView];// リモートユーザーのビデオレンダリングコントロールを更新[self.trtcCloud updateRemoteView:self.previewView streamType:TRTCVideoStreamTypeBig forUser:self.userId];
@Overridepublic void onNetworkQuality(TRTCCloudDef.TRTCQuality localQuality, ArrayList<TRTCCloudDef.TRTCQuality> remoteQuality) {if (remoteQuality.size() > 0) {switch (remoteQuality.get(0).quality) {case TRTCCloudDef.TRTC_QUALITY_Excellent:Log.i(TAG, "相手のネットワーク状態がとてもいい");break;case TRTCCloudDef.TRTC_QUALITY_Good:Log.i(TAG, "相手のネットワーク状態が比較的良い");break;case TRTCCloudDef.TRTC_QUALITY_Poor:Log.i(TAG, "相手のネットワーク状態が普通");break;case TRTCCloudDef.TRTC_QUALITY_Bad:Log.i(TAG, "相手のネットワーク状態が不安定");break;case TRTCCloudDef.TRTC_QUALITY_Vbad:Log.i(TAG, "相手のネットワーク状態がかなり悪い");break;case TRTCCloudDef.TRTC_QUALITY_Down:Log.i(TAG, "相手のネットワーク状態が極めて悪い");break;default:Log.i(TAG, "未定義");break;}}}
#pragma mark - TRTCCloudDelegate- (void)onNetworkQuality:(TRTCQualityInfo *)localQuality remoteQuality:(NSArray<TRTCQualityInfo *> *)remoteQuality {if (remoteQuality.count > 0) {switch(remoteQuality[0].quality) {case TRTCQuality_Unknown:NSLog(@"未定義");break;case TRTCQuality_Excellent:NSLog(@"相手のネットワーク状態がとてもいい");break;case TRTCQuality_Good:NSLog(@"相手のネットワーク状態が比較的良い");break;case TRTCQuality_Poor:NSLog(@"相手のネットワーク状態が普通");break;case TRTCQuality_Bad:NSLog(@"相手のネットワーク状態が不安定");break;case TRTCQuality_Vbad:NSLog(@"相手のネットワーク状態がかなり悪い");break;case TRTCQuality_Down:NSLog(@"相手のネットワーク状態が極めて悪い");break;default:break;}}}
localQualityのuserIdフィールドが空の場合、ローカルユーザーのネットワーク品質評価結果を表します。remoteQualityはリモートユーザーのネットワーク品質評価結果を表し、その結果はリモートとローカルの両方の影響を受けます。// 通話開始時間long callStartTime = 0;// 通話終了時間long callFinishTime = 0;// 通話の持続時間(秒)long callDuration = 0;// リモートユーザー入室コールバック@Override public void onRemoteUserEnterRoom(String userId) { callStartTime = System.currentTimeMillis(); }// ローカルユーザー退室コールバック@Override public void onExitRoom(int reason) { callFinishTime = System.currentTimeMillis();callDuration = (callFinishTime - callStartTime) / 1000; }
// 通話開始時間@property (nonatomic, assign) NSTimeInterval callStartTime;// 通話終了時間@property (nonatomic, assign) NSTimeInterval callFinishTime;// 通話の持続時間(秒)@property (nonatomic, assign) NSInteger callDuration;// リモートユーザー入室コールバック- (void)onRemoteUserEnterRoom:(NSString *)userId {self.callStartTime = [[NSDate date] timeIntervalSince1970];}// ローカルユーザー退室コールバック- (void)onExitRoom:(NSInteger)reason {self.callFinishTime = [[NSDate date] timeIntervalSince1970];self.callDuration = (NSInteger)(self.callFinishTime - self.callStartTime);}



顔加工タイプ | 顔加工効果 | アクセスコスト | 費用コスト | バーチャルデジタルヒューマン | 対応ターミナル |
基本効果は良好、高度なエフェクト、デカ目や小顔などの効果が顕著 | 若干低い | 普通 | 対応 | Android/iOS/PC/Flutter/Web/ミニプログラム | |
基本効果は良好、高度なエフェクト、デカ目や小顔などは普通 | 若干高い | 普通 | 対応 | Android/iOS/PC/Untiy | |
基本効果は良好、高度なエフェクト、デカ目や小顔などは若干良好 | 若干高い | 若干高い | 対応 | Android/iOS/PC/Linux |
システムレベル | 製品名 | シナリオ用途 |
アクセス層 | 低遅延、高品質のオーディオ・ビデオリアルタイムインタラクションソリューションを提供することは、オーディオ・ビデオ通話シナリオの基本的な基盤能力です。 | |
アクセス層 | シグナル伝送において高い信頼性と安定性を提供し、カスタムメッセージの送受信を実現し、オーディオ・ビデオ通話シナリオの通話シグナル制御を実現します。 | |
アクセス層 | 顔加工、フィルター、美容メイク、趣味ステッカー、Moji絵文字、バーチャルキャラクターなどのリアルタイムエフェクト処理機能を提供します。 | |
クラウドサービス | オーディオ・ビデオメディアに対して、制作・アップロード、保存、トランスコード、MPS、メディアAI、再生デリバリー、著作権保護などの一体化された高品質メディアサービスを提供します。 | |
データストレージ | オーディオ・ビデオ録画ファイル、音オーディオ・ビデオクリップファイルのストレージサービスを提供します。 |
フィードバック