Middleware Library - ADX再生関数

ADXT_GetTime

サンプル単位での再生時刻の取得

書式

void ADXT_GetTime( adxt, ncount, tscale )
ADXT adxt
long *ncount
long *tscale

引数

adxt   ADXTハンドル
ncount   再生サンプル数を取得する変数へのポインタ
tscale   サンプリング周波数を取得する変数へのポインタ

戻り値

なし

解説

サンプル単位での再生時刻を取得します。

用例

/* 44KHzのステレオデータを1ストリームだけ再生する場合 */
#define WKSIZE	ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 44100)

char *work[WKSIZE]; /* 作業領域 */
ADXT adxt; /* ADXTハンドル */
long nsmpl, sfreq; /* 再生時刻 */
long nfrm, hh, mm, ss, ff; /* 時刻 */

adxt = ADXT_Create(2, work, WKSIZE); /* ADXTハンドルの生成 */
ADXT_StartFname(adxt, "music.adx"); /* 再生開始 */
for (;;) {
	/* 再生時刻の表示 (フレームの単位は1/60) */
	ADXT_GetTime(adxt, &nsmpl, &sfreq);
	nfrm = nsmpl*60/sfreq; /* 総フレーム数 */
	hh = nfrm / (60*60*60);  /* 時 */
	mm = (nfrm - hh*60*60*60) / (60*60); /* 分 */
	ss = (nfrm - (hh*60+mm)*60*60) / 60; /* 秒 */
	ff = nfrm % 1000; /* フレーム */
	disp_time(hh, mm, ss, ff);
}

備考

44KHzの音声データを上記の例で扱う場合、nfrmを求める時に60を乗じているため、再生時刻の最大値は811秒となります。 ADXT_GetTime()関数は、最大で約13.5時間ですが、このように単位を変換するときは注意が必要です。


Middlewareライブラリをご使用になる場合、ご利用になる関数によっては表記義務や別途ロイヤリティが必要になる場合があります。


ADXT_GetTime
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000