情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

MediaStreamSource.GetSampleAsync メソッド

2013/12/12

MediaElement は、このメソッドを呼び出して、メディア パイプラインの要求されたストリーム型の次の MediaStreamSample を準備するように MediaStreamSource に要求します。開発者は、ReportGetSampleCompleted または ReportGetSampleProgress を呼び出すことによって、このメソッドに応答できます。

Namespace:  System.Windows.Media
アセンブリ:  System.Windows (System.Windows.dll 内)

protected abstract void GetSampleAsync(
	MediaStreamType mediaStreamType
)

パラメーター

mediaStreamType
型: System.Windows.Media.MediaStreamType
次のサンプルの取得元ストリームに関する記述。Audio または Video です。

開発者は、GetSampleAsync 呼び出しに対して、次の 4 つのうちいずれかの応答ができます。

  1. ReportGetSampleProgress を呼び出します。これは MediaElementMediaStreamSource が自分のバッファーをリビルド中で、バッファーのリビルドが終了するまではどのストリームについてもサンプルを報告しないことを通知します。ReportGetSampleProgress の呼び出しは、MediaElement の Buffering 状態への遷移も許可し、レンダリングは一時中断されます。開発者は ReportGetSampleProgress を繰り返し呼び出して、MediaElement.BufferingProgress が返すダウンロードされた割合を更新できます。

  2. 要求されたストリームの ReportGetSampleCompleted をメディア サンプル、またはメディア終了時のサンプルと共に呼び出す。任意のストリームでの ReportGetSampleCompleted の呼び出しは、メディアのバッファリングが完了したことも示し、Buffering 状態であるための許可は取り消されます。

  3. ErrorOccurred を呼び出すか、またはメディアが失敗したことを示す例外が発生します。

  4. 即座には何もしませんが、最終的には次の 3 つのうちいずれかの方法で応答します。

Windows Phone は、一度に 1 つの MediaStreamSource コールバックを呼び出します。そのため、開発者は速やかに GetSampleAsync を終了せねばなりません。これを行わないと、Windows Phone が他のストリームのためにサンプルを要求したり、状態の変更を報告できなくなる場合があります。

Windows Phone は、指定したストリームのバッファーがいっぱいになるまで ReportGetSampleCompleted に別の GetSampleAsync で応答します。Windows Phone は、ストリームに複数のサンプルを要求してから、別のストリームにサンプルを要求します。

バージョンについてのメモ

Windows Phone

 は、開発者が ReportGetSampleProgress を呼び出して MediaStreamSource が自分のバッファーのリビルド中であることが示された後でもなお、他のストリームの GetSampleAsync を呼び出す場合があります。このシナリオでは、開発者はバッファリングが完了するまで ReportGetSampleCompleted を呼び出さないように注意する必要があります。

Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: