IAudioClock::GetFrequency メソッド (audioclient.h)

GetFrequency メソッドは、デバイスの頻度を取得します。

構文

HRESULT GetFrequency(
  [out] UINT64 *pu64Frequency
);

パラメーター

[out] pu64Frequency

メソッドがデバイスの頻度を書き込む UINT64 変数へのポインター。 詳細については、「解説」を参照してください。

戻り値

メソッドが成功した場合は、S_OK を返します。 エラーが発生した場合、次の表に示す値が、可能なリターン コードに含まれますが、これらに限定されません。

リターン コード 説明
E_POINTER
パラメーター pu64FrequencyNULL です
AUDCLNT_E_DEVICE_INVALIDATED
オーディオ エンドポイント デバイスが取り外されているか、オーディオ ハードウェアまたは関連するハードウェア リソースが再構成、無効、削除、またはその他の方法で使用できなくなります。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows オーディオ サービスが実行されていません。

注釈

デバイスの周波数は、オーディオ デバイスのハードウェア クロックによって生成される周波数です。 このメソッドは、 IAudioClock::GetPosition メソッドが報告するデバイスの位置と互換性のある単位でデバイスの頻度を報告します。 たとえば、特定のストリームに対して GetPosition メソッドが位置 p をバイト オフセットとして表す場合、 GetFrequency メソッドは 1 秒あたりの頻度 f をバイト単位で表します。 どのストリームでも、pf が表される単位に関係なく、ストリームの開始からのオフセットを常に pfとして/確実に計算できます。

Windows Vista では、 GetFrequency の連続した呼び出しによって報告されるデバイスの頻度は、ストリームの有効期間中に変わることはありません。

オーディオ デバイスによって生成されたクロックがわずかな定数周波数で実行される場合、基準クロックに対するドリフトやジッターが原因で、周波数が時間の経過と共にわずかに変化する可能性があります。 参照クロックは、壁時計または QueryPerformanceCounter 関数で使用されるシステム クロックである可能性があります。 GetFrequency メソッドは、このようなバリエーションを無視し、単に一定の頻度を報告します。 ただし、 IAudioClient::GetPosition メソッドによって報告される位置は、呼び出されるたびに正確な位置値を報告するために、このようなバリエーションをすべて考慮します。 QueryPerformanceCounter の詳細については、Windows SDK のドキュメントを参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー audioclient.h

こちらもご覧ください

IAudioClock インターフェイス

IAudioClock::GetPosition