次の方法で共有


IAudioCaptureClient::GetNextPacketSize メソッド (audioclient.h)

GetNextPacketSize メソッドは、キャプチャ エンドポイント バッファー内の次のデータ パケット内のフレーム数を取得します。

構文

HRESULT GetNextPacketSize(
  [out] UINT32 *pNumFramesInNextPacket
);

パラメーター

[out] pNumFramesInNextPacket

メソッドがフレーム数 (次のキャプチャ パケット内のオーディオ フレームの数) を書き込む UINT32 変数へのポインター。

戻り値

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

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

注釈

このメソッドは、共有モード ストリームでのみ使用します。 排他モード ストリームでは機能しません。

IAudioCaptureClient::GetBuffer メソッドを呼び出して次のデータ パケットを取得する前に、クライアントは GetNextPacketSize を呼び出して、次のパケット内のオーディオ フレームの数を取得できます。 GetNextPacketSize によって報告されるカウントは、GetNextPacketSize 呼び出しに続く GetBuffer 呼び出し (pNumFramesToRead 出力パラメーターを使用) で取得されたカウントと一致します。

パケットは常に、オーディオ フレームの整数で構成されます。

GetNextPacketSize は、キャプチャ エンドポイント バッファー内のパケットを取得および解放する GetBuffer メソッドおよび IAudioCaptureClient::ReleaseBuffer メソッド呼び出しと同じスレッドで呼び出す必要があります。

GetNextPacketSize メソッドを使用するコード例については、「Streamのキャプチャ」を参照してください。

要件

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

こちらもご覧ください

IAudioCaptureClient インターフェイス

IAudioCaptureClient::GetBuffer

IAudioCaptureClient::ReleaseBuffer

IAudioClient::GetCurrentPadding