ファイル シンクの使用
[このページに関連付けられている機能である Windows Media Format 11 SDK は、レガシ機能です。 これは、ソース リーダーとシンク ライターによって置き換えられます。 ソース リーダーとシンク ライターは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、Windows Media Format 11 SDK ではなくソース リーダーとシンク ライターを使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
通常の状況では、 IWMWriter::SetOutputFilename メソッドを使用してライターに出力ファイル名を渡すだけで、ライター オブジェクトによってファイルが自動的にディスクに書き込まれます。 この場合、ライターは実際に、ディスクへのファイルの書き込みを処理するライター ファイル シンク オブジェクトを作成および制御しています。 ライター ファイル シンク オブジェクトは、ライター オブジェクトから 1 つのファイルへのデータフローを制御します。
独自のファイル シンクを作成して、シンクによるファイルの書き込み方法をより詳細に制御できます。 SetOutputFilename の呼び出しに応じて、ライターによって作成された既定のライター ファイル シンクにアクセスすることもできます。
ファイル シンクの作成
ファイル シンクを作成してライターに追加するには、次の手順を実行します。
- WMCreateWriterFileSink 関数を呼び出して、新しいシンクを作成します。
- IWMWriterFileSink::Open を呼び出して、シンクのファイル名を指定します。
- IWMWriterAdvanced::AddSink を呼び出して、ライターにファイル シンクを追加します。
- 通常の方法で書き込みを実行します。
- 書き込みが完了すると、シンクによってファイルが自動的に閉じます。
ファイル シンクの停止と開始
書き込み操作が開始されたら、 IWMWriterFileSink2::Stop を呼び出してファイル シンクへの書き込みを停止できます。
シンクへの書き込みを停止する理由は多数あります。 たとえば、ライブ ソースから記録している場合は、一部のコンテンツのみに関心がある場合があります。
ファイル シンクへの書き込みを再開するには、 IWMWriterFileSink2::Start を呼び出します。 Stop と Start の両方でプレゼンテーション時間を使用して、コマンドの実行時間をほぼ制御します。 IWMWriterFileSink3 メソッドを使用すると、開始時刻と停止時間をより詳細に制御できます。
ファイル シンクを閉じる
通常、ファイル シンクは自動的に閉じられます。 シンクへの書き込みが完了したが、他のシンクへの書き込み操作が続行されている場合は、リソースを節約するためにシンクを明示的に閉じる必要があります。 ファイル シンクを閉じるには、 IWMWriterFileSink2::Close を呼び出します。
シンク統計の取得
開いているシンクのファイル サイズと期間を取得するには、 IWMWriterFileSink2::GetFileSize と IWMWriterFileSink2::GetFileDuration をそれぞれ呼び出します。
関連トピック