初心者はここで聞け!DirectX相談室
■ このスレッドは過去ログ倉庫に格納されています
0600582
NGNGDirectMusicで、曲全体の長さを秒数で取得する方法について総合して組んでみましたが、どうもうまくいきません。
IDirectMusicPerformance* pDMPerf;
IDirectMusicSegment* pDMSegment;
MUSIC_TIME m_SegLength;
// セグメントの長さを調べる
pDMSegment->GetLength(&m_SegLength);
REFERENCE_TIME refTime;
DMUS_TEMPO_PARAM dmTempo;
/*MUSIC_TIMEをREFERENCE_TIMEに変換(REFERENCE_TIMEは1秒間に10,000,000回,目盛りを刻む。*/
pDMPerf->MusicToReferenceTime(m_SegLength, &refTime);
//Tempoを取得(テンポは1〜1000の値を返す)
pDMSegment->GetParam(GUID_TempoParam, 0xFFFFFFFF, 0, 0, NULL,&dmTempo);
long lTime;
lTime = (refTime * (dmTempo.dblTempo / 500.)) / 10,000,000;
//疑問�@Tempo計算は適当です(^^;一体どうやってやるんでしょうか?
//疑問�ArefTimeが毎回違う値になるのはどうしてでしょうか?
/*疑問�Bそして結局lTimeがとてつもなく大きい値になります。もしかして根本から違うのかな(^^;*/
やはりWindowsAPIの方を探すしかないのでしょうか?
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています