Agora SDKの概要と機能
Agora SDKは、リアルタイムコミュニケーションを実現するためのプラットフォーム。SDKは、ビデオ通話、音声通話、メッセージングなどのさまざまな通信機能を提供します。以下にAgora SDKの主な機能を詳しく説明する。
-
ビデオ通話:
- ビデオキャプチャとディスプレイ: カメラや画面の共有を実現するための機能
- オーディオ/ビデオコーデック: 高品質なオーディオ/ビデオストリームのエンコードおよびデコードをサポート
- リアルタイム映像処理: ビデオフィルターや仮想的な背景などのリアルタイム映像処理を実現する機能
- レコーディングとプレイバック: ビデオ通話の録画および再生をサポート
-
音声通話:
- 音声コーデック: 高品質な音声ストリームのエンコードおよびデコードをサポート
- ノイズおよびエコーキャンセル: 音声品質を向上させるためのノイズおよびエコーキャンセル機能
- オーディオミキシングと変換: 複数の音声ストリームをミキシングしたり、サンプルレートを変換したりする機能
-
メッセージング:
- メッセージ送受信: ユーザー間のテキストメッセージの送受信を実現する機能
- ユーザー属性管理: ユーザーに関する属性情報(ニックネームなど)を管理する機能
以上がAgora SDKの主な機能。次に、動画データの送受信を行うサンプルコードを示す。
Javaサンプルコード
// Agora SDKの初期化
RtcEngine.initialize(context, APP_ID, rtcEventHandler);
// ビデオ通話のセットアップ
rtcEngine.enableVideo();
// ビデオ通話の設定
VideoEncoderConfiguration videoConfig = new VideoEncoderConfiguration(
VideoEncoderConfiguration.VD_640x480, // 解像度
VideoEncoderConfiguration.FRAME_RATE.FRAME_RATE_FPS_30, // フレームレート
VideoEncoderConfiguration.STANDARD_BITRATE, // ビットレートモード
VideoEncoderConfiguration.ORIENTATION_MODE.ORIENTATION_MODE_FIXED_LANDSCAPE // 画面の向き
);
rtcEngine.setVideoEncoderConfiguration(videoConfig);
// ビデオ通話の開始
rtcEngine.joinChannel(null, "channelName", "optionalInfo", uid);
// ビデオフレームの取得と送信
rtcEngine.setVideoFrameObserver(new AgoraVideoFrameObserver() {
@Override
public boolean onCaptureVideoFrame(VideoFrame videoFrame) {
// ビデオフレームの処理
return rtcEngine.sendVideoFrame(videoFrame);
}
});
// ビデオ通話の終了
rtcEngine.leaveChannel();
// Agora SDKの終了
RtcEngine.destroy();
Goサンプルコード
// Agora SDKの初期化
engine, err := rtc.NewRtcEngine(APP_ID)
// ビデオ通話のセットアップ
engine.EnableVideo()
// ビデオ通話の設定
videoConfig := rtc.NewVideoEncoderConfiguration(
rtc.VideoDimensions640x480, // 解像度
rtc.VideoFrameRateFps30, // フレームレート
rtc.VideoBitrateStandard, // ビットレートモード
rtc.VideoOrientationModeFixedLandscape, // 画面の向き
)
engine.SetVideoEncoderConfiguration(videoConfig)
// ビデオ通話の開始
engine.JoinChannel("", "channelName", "optionalInfo", uid)
// ビデオフレームの取得と送信
engine.SetVideoFrameObserver(func(videoFrame *rtc.VideoFrame) {
// ビデオフレームの処理
engine.SendVideoFrame(videoFrame)
})
// ビデオ通話の終了
engine.LeaveChannel()
// Agora SDKの終了
engine.Release()
C#サンプルコード
// Agora SDKの初期化
IRtcEngine rtcEngine = RtcEngine.Create(APP_ID);
// ビデオ通話のセットアップ
rtcEngine.EnableVideo();
// ビデオ通話の設定
VideoEncoderConfiguration videoConfig = new VideoEncoderConfiguration
{
Dimensions = VideoDimensions.Dimensions640x480, // 解像度
FrameRate = VideoFrameRate.FrameRateFps30, // フレームレート
Bitrate = VideoBitrate.Standard, // ビットレートモード
OrientationMode = VideoOutputOrientationMode.FixedLandscape // 画面の向き
};
rtcEngine.SetVideoEncoderConfiguration(videoConfig);
// ビデオ通話の開始
rtcEngine.JoinChannel("", "channelName", "optionalInfo", uid);
// ビデオフレームの取得と送信
rtcEngine.SetVideoFrameObserver(new CustomVideoFrameObserver(rtcEngine));
// ビデオ通話の終了
rtcEngine.LeaveChannel();
// Agora SDKの終了
rtcEngine.Release();
これらのサンプルコードを使用することで、Agora SDKを利用して動画データの送受信を行うことができる。