スクロール ビューアー内のキャンバスに波形 (オーディオ ファイルの左チャンネル) をプロットしました。キャンバス (コンテンツとして波形を含む) がスクロールビューアーの表示ウィンドウを「移動」するようにしたいと思います。これのポイントは、波形が画面上を移動するのを見ることができるようにすることです。プロットされているオーディオ ファイルが数分の長さである場合でも、指定された時間のウィンドウのみが表示されます (おそらく、1 分間のクリップ)。クロックにバインドして、クロックが開始すると波形が動き始めるようにします (または、スクロール ビューアーの水平オフセットが進みます)。C# と WPF を使用して、Naudio を使用して波形をプロットしました。プロットされた波形は、100 ミリ秒ごとにサンプリングされたファイル内のすべてのバイトのグラフです。時計とビューウィンドウを同期させるにはどうすればよいですか? これはこの種のことを扱う私の最初のプロジェクトであるため、開始するための助けや場所をいただければ幸いです。ありがとう。
質問する
510 次
1 に答える
1
私が正しく理解していればCanvas
、時間に応じてプログラムでコンテンツをスクロールできます。以下にサンプルアルゴリズムを示します。
次のようにプログラムでスクロールできます。
scrollViewer.ScrollToHorizontalOffset(scrollViewer.HorizontalOffset + 5); // Horizontal scroll through 5 units
タイマーの操作は次のようになります。
int InitInterval = Interval; // init interval
System.Timers.Timer myTimer = new System.Timers.Timer();
myTimer.Elapsed += new ElapsedEventHandler(ScrollCanvas);
// set the interval
if (InitInterval > 0)
{
myTimer.Interval = InitInterval;
}
// turn on timer
myTimer.Enabled = true;
のリストScrollCanvas():
private void ScrollCanvas(object source, ElapsedEventArgs e)
{
// some code
// ...
// implementing scrolling
Dispatcher.BeginInvoke(new ThreadStart(delegate
{
scrollViewer.ScrollToHorizontalOffset(scrollViewer.HorizontalOffset + 5);
}));
}
于 2013-07-30T06:39:28.317 に答える