C# 做一个播放音频文件的进度条该怎么实现呢??

2024-12-30 02:09:53
推荐回答(4个)
回答1:

没办法,几乎所有的timer有会有一定的时间误差。不过听你的意思貌似是根据timer的计算来更新进度条的数据??
你可以在timer里执行这个操作:
获取音频文件当前的播放位置[如果用windowmediaplayer的话,这个位置将会是时间,不是的话应该是流位置],根据这个重新更新进度条

回答2:

先读取视频的总时间,之后 获取现在已播放时间比上总时间, 得到一个百分比, 再用两个div背景设置就可以做成进度条了。 拖拉也可以的。 比较吃js功夫的。
音频格式是指要在计算机内播放或是处理音频文件,是对声音文件进行数、模转换的过程。音频格式最大带宽是20KHZ,速率介于40~50KHZ之间,采用线性脉冲编码调制PCM,每一量化步长都具有相等的长度。

回答3:

  实现的代码为:
  private void GetData()
{
string strConn = "Data Source=.;Initial Catalog=dbXXX;User ID=sa;pwd=123456";
SqlConnection con = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter("select * from tableX", con);
DataSet ds = new DataSet();
da.Fill(ds);
int count = ds.Tables[0].Rows.Count;
progressBar1.Minimum = 0;
progressBar1.Maximum = 100;
progressBar1.BackColor = Color.Green;
for (int i = 0; i < count; i++) //为了能看出效果 用for循环来减低速度
{
for (int j = 0; j < 1000; j++)
{
if (Convert.ToInt32(ds.Tables[0].Rows[i]["***"].ToString()) > 20)
cc++;
}
progressBar1.Value = ((i + 1) * 100 / count);
}
dataGridView1.DataSource = ds.Tables[0];
}

回答4:

progressBar1.Maximum = (int)axWindowsMediaPlayer1.currentMedia.duration;
progressBar1.Minimum = 0;
progressBar1.Step = (int)(progressBar1.Maximum / 20);
progressBar1.Value = (int)axWindowsMediaPlayer1.Ctlcontrols.currentPosition;
time.Text = axWindowsMediaPlayer1.Ctlcontrols.currentPositionString;

放在Timer里.