LoginSignup
0
0

Agora SDKでリアルタイムコミュニケーション

Posted at

Agora SDKの概要と機能

Agora SDKは、リアルタイムコミュニケーションを実現するためのプラットフォーム。SDKは、ビデオ通話、音声通話、メッセージングなどのさまざまな通信機能を提供します。以下にAgora SDKの主な機能を詳しく説明する。

  1. ビデオ通話:

    • ビデオキャプチャとディスプレイ: カメラや画面の共有を実現するための機能
    • オーディオ/ビデオコーデック: 高品質なオーディオ/ビデオストリームのエンコードおよびデコードをサポート
    • リアルタイム映像処理: ビデオフィルターや仮想的な背景などのリアルタイム映像処理を実現する機能
    • レコーディングとプレイバック: ビデオ通話の録画および再生をサポート
  2. 音声通話:

    • 音声コーデック: 高品質な音声ストリームのエンコードおよびデコードをサポート
    • ノイズおよびエコーキャンセル: 音声品質を向上させるためのノイズおよびエコーキャンセル機能
    • オーディオミキシングと変換: 複数の音声ストリームをミキシングしたり、サンプルレートを変換したりする機能
  3. メッセージング:

    • メッセージ送受信: ユーザー間のテキストメッセージの送受信を実現する機能
    • ユーザー属性管理: ユーザーに関する属性情報(ニックネームなど)を管理する機能

以上が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を利用して動画データの送受信を行うことができる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0