MediaElementにMarkersプロパティがあるようですが、これはWPF MediaElementではなく、SilverlightMediaElementで使用できるようです。
私が欠けているものを手伝ってくれませんか?
WPF MediaElementにマーカーを追加して、ビデオを再生し、タイムラインに基づいてポップアップを表示しようとしています。Missing Markersコレクションの代わりに何を使用する必要がありますか?
ご協力ありがとうございました。
MediaElementにMarkersプロパティがあるようですが、これはWPF MediaElementではなく、SilverlightMediaElementで使用できるようです。
私が欠けているものを手伝ってくれませんか?
WPF MediaElementにマーカーを追加して、ビデオを再生し、タイムラインに基づいてポップアップを表示しようとしています。Missing Markersコレクションの代わりに何を使用する必要がありますか?
ご協力ありがとうございました。
実際の目的に応じて、質問には2つの側面があります。MediaElement.Markersプロパティは、現在ロードされているメディアファイルに関連付けられたタイムラインマーカーの読み取り専用 コレクションであることに注意してください。
TimelineMarkerクラスのMSDNの説明は次のとおりです。
タイムラインマーカーは、メディアファイル内の特定のポイントに関連付けられたメタデータです。これらのマーカーは通常、事前に作成され、メディアファイル自体に保存されます。これらは通常、ビデオ内のさまざまなシーンに名前を付けたり、スクリプトの手がかりを提供したりするために使用されます。MediaElementオブジェクトのMarkerReachedイベントを処理するか、MediaElementオブジェクトのMarkersプロパティにアクセスすることで、タイムラインマーカーを使用できます[...]
したがって、タイムラインマーカーはポップアップのエンコードに適している場合がありますが、これらはメディアファイル自体のプロパティであり、一般的なメディアプレーヤーのタイムラインウィジェットのグラフィカルな目盛りのコレクションではないことに注意してください。
私が今見つけたこれを要約した唯一の記事は、StevenPorterのSilverlightとWPFで消費するためにビデオマーカーをエンコードする方法です。(登録要求に惑わされないでください。そもそもStack Overflowの作成の動機となったのは、邪悪なハイフンサイトの悪名高い手法です。つまり、登録しなくても、下にスクロールし続けるだけで、記事を問題なく読むことができます。)
これがあなたが実際に達成しようとしていることであり、MediaElement.Markersコレクションに出くわした理由であると仮定すると、答えはあなた自身を転がすことです:
非常に簡単ですが、基本的にはスライダーコントロールを好みに合わせてカスタマイズする必要があります。Ticksプロパティを使用して不規則な間隔でスライダーに沿って目盛りを作成する方法については、スライダークラスのドキュメントのこの例を参照してください。
<Slider Width="100" Value="50" Orientation="Horizontal" HorizontalAlignment="Left"
IsSnapToTickEnabled="True" Maximum="3" TickPlacement="BottomRight"
AutoToolTipPlacement="BottomRight" AutoToolTipPrecision="2"
Ticks="0, 1.1, 2.5, 3"/>