VCTConfig

定義

#include <vct.h>

typedef struct
{
    VCTSession*         session;
    u32                 numSession;
    VCTMode             mode;
    u8                  aid;
    void*               audioBuffer;
    u32                 audioBufferSize;
    VCTEventCallback    callback;
    void*               userData;
} VCTConfig;

定義

session VCTSession構造体を保存する領域
numSession セッションの数
mode VoiceChatの動作モードを指定します
aid 端末のAIDを入れてください
audioBuffer オーディオストリーミング用のバッファ。32バイトにアライメントされたアドレスを指定してください
audioBufferSize audioBufferのサイズ
callback VoiceChatのイベントコールバック関数
userData イベントコールバック関数に渡すデータ

説明

VoiceChatライブラリの初期化のための構造体です。VCT_Initを呼び出す際に利用します。
sessionには、numSession分のVCTSession構造体を保存できる領域を指定します。必要なセッションの数はモードによって異なり、以下のようになります。

電話モード 1つ(割り込み要求処理を行う場合、2つ)
トランシーバーモード 1つ
カンファレンスモード 最大参加人数 - 1(4人でカンファレンスをしたい場合、3つ必要)

audioBufferaudioBufferSizeで指定するオーディオデータの受信バッファは、音声受信時のネットワークジッタを吸収するためのバッファです。このバッファが100ms以下だと、頻繁に音声再生に途切れが生じます。最低でも250ms分は確保してください。また、audioBufferSizeVCT_AUDIO_BUFFER_SIZEの整数倍である必要があります。

VoiceChatライブラリの1パケットの長さは68msのため、以下のようになります。


   /* 250ms / 68ms ≒ 4 */
   static u8 stAudioBuffer[4 * VCT_AUDIO_BUFFER_SIZE] ATTRIBUTE_ALIGN(32);

   config.audioBuffer     = stAudioBuffer;
   config.audioBufferSize = 4 * VCT_AUDIO_BUFFER_SIZE;

カンファレンスモードのように、通信相手が増える場合は、その分に応じてバッファ数を増やす必要があります。4人参加のカンファレンスモードの場合、受信するデータは3倍になるため、バッファ数も3倍にする必要があります。

参照

VCT_Init

履歴

2006/04/13 送信間隔を64msから68msへ変更
2006/04/10 初期化パラメータの修正と推奨パラメータの記述を追記
2006/04/06 送信間隔の調整に関する記述を修正しました
2006/01/25 初版