#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つ必要) |
audioBufferとaudioBufferSizeで指定するオーディオデータの受信バッファは、音声受信時のネットワークジッタを吸収するためのバッファです。このバッファが100ms以下だと、頻繁に音声再生に途切れが生じます。最低でも250ms分は確保してください。また、audioBufferSizeはVCT_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倍にする必要があります。
2006/04/13 送信間隔を64msから68msへ変更
2006/04/10 初期化パラメータの修正と推奨パラメータの記述を追記
2006/04/06 送信間隔の調整に関する記述を修正しました
2006/01/25 初版