0

http://naudio.codeplex.com/wikipage?title=MP3参照してください。すべてが正常に機能しましたが、現在の時間と継続時間を示すトラックバーをコーディングしているときに、曲の任意の位置をシークすることさえできるため、タイマーを使用して現在の時間を更新しましたmainOutputStream.CurrentTimeが、形式は見にくいです。私は次のように再フォーマットしました:

string curTime = mainOutputStream.CurrentTime.ToString();
string[] format = curTime.Split(':');
format[2] = format[2].Remove(2);
curTime = format[1] + format[2];

しかし、format[2] = format[2].Remove(2);常にエラーを返します。そして、タイムスパンではなくバイトでも期間を取得する方法はないようですが、私は averageBytePerSecond などを使用するのが好きではないので、とにかくこれらの仕事をよりシンプルでより良いものにする方法はありますか? 上記の参照のようにすべての変数

ありがとう。

編集: 問題が解決しました ~ 私はこの方法を使用しました:
期間を取得:

string duration = mainOutputStream.TotalTime.ToString("mm\\:ss");
trackPosition.Maximum = (int)mainOutputStream.TotalTime.TotalSeconds;

現在の時刻を取得:

string curTime = mainOutputStream.CurrentTime.ToString("mm\\:ss");
trackPosition.Value = (int)mainOutputStream.CurrentTime.TotalSeconds;
4

1 に答える 1

1

これを試して:

string curTimeString = mainOutputStream.CurrentTime.ToString("mm\\:ss");
int curTimeSeconds =  (int)mainOutputStream.CurrentTime.TotalSeconds;

最初のものは分と秒のフォーマットのみです。オーディオ トラックが大きい場合は、別のフォーマットを追加する必要があります。

詳細については、こちらを参照してください:タイムスパンの書式設定

于 2012-12-03T00:43:00.827 に答える