Я делаю простой медиаплеер и хочу добавить некоторую общую функцию, например элемент управления трекбаром, который синхронизируется с видео / музыкой во время работы.
Это то, что я сделал до сих пор:
namespace Joe_Media_Player
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
Кнопка паузы
private void pausebutton_Click(object sender, EventArgs e)
{
if(axWindowsMediaPlayer1.playState == WMPPlayState.wmppsPaused)
{
mediaplayer.Ctlcontrols.play();
}
else
{
axWindowsMediaPlayer1.Ctlcontrols.pause();
}
}
Кнопка воспроизведения
private void playbutton_Click(object sender, EventArgs e)
{
listBox1.SelectedIndex = 0;
axWindowsMediaPlayer1.Ctlcontrols.play();
}
Открыть файл / просмотреть
private void BrowseBtn_Click(object sender, EventArgs e) // Open file //
{
using (OpenFileDialog ofd = new OpenFileDialog() { Multiselect = true, ValidateNames = true, Filter = "(mp3,wav,wav,mov,wmv,mpg,avi,3gp,flv|*.mp3;*.mp4;*.wav;*.mov;*.wmv;*.mpg;*.avi;*.3gp;*.flv|all files|*.*" }) //HEADER
{
if (ofd.ShowDialog() == DialogResult.OK) // Kondisi mulai
{
List<MediaFile> files = new List<MediaFile>(); // Membuat list baru musik/video
foreach (string fileName in ofd.FileNames) // Cetak file nama
{
FileInfo fi = new FileInfo(fileName); // New file info nama
files.Add(new MediaFile() { FileName = Path.GetFileNameWithoutExtension(fi.FullName), Path = fi.FullName }); // Pilih file musik/video
}
listBox1.DataSource = files; // List data file
listBox1.ValueMember = "Path"; // List tipe
listBox1.DisplayMember = "FileName"; // File nama
}
}
}
Кнопка свернуть и развернуть
private void MinBtn_Click(object sender, EventArgs e)
{
FormBorderStyle = FormBorderStyle.None;
WindowState = FormWindowState.Minimized;
}
private void MaxBtn_Click(object sender, EventArgs e)
{
FormBorderStyle = FormBorderStyle.None;
WindowState = FormWindowState.Maximized;
}
Перемотка назад, стоп, перемотка вперед, кнопка «Далее»
private void rewindbutton_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer1.Ctlcontrols.fastReverse();
}
private void prevbutton_Click(object sender, EventArgs e)
{
if(axWindowsMediaPlayer1r.playState == WMPLib.WMPPlayState.wmppsPlaying)
{
if(listBox1.SelectedIndex == 0)
{
listBox1.SelectedIndex = 0;
listBox1.Update();
}
else
{
axWindowsMediaPlayer1.Ctlcontrols.previous();
listBox1.SelectedIndex -= 1;
listBox1.Update();
}
}
mediaplayer.Ctlcontrols.previous();
}
private void stopbutton_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer1.Ctlcontrols.stop();
}
private void nextbutton_Click(object sender, EventArgs e)
{
if(axWindowsMediaPlayer1.playState== WMPLib.WMPPlayState.wmppsPlaying)
{
if(listBox1.SelectedIndex < (listBox1.Items.Count -1))
{
axWindowsMediaPlayer1.Ctlcontrols.next();
listBox1.SelectedIndex += 1;
listBox1.Update();
}
else
{
listBox1.SelectedIndex = 0;
listBox1.Update();
}
}
}
private void fastfowardbutton_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer1.Ctlcontrols.fastForward();
}
listbox1
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MediaFile file = listBox1.SelectedItem as MediaFile;
if (file != null)
{
axWindowsMediaPlayer1.URL = file.Path;// Pilih tipe file
mediaplayer.Ctlcontrols.play(); // Contorl mulai musik/video
}
}
трекбар громкости
private void volumetrackbar_ValueChanged(object sender, EventArgs e)
{
int rate = 100 * (bunifuSlider2.Value - 10);
axWindowsMediaPlayer1.settings.volume = bunifuSlider2.Value;
}
private void volumebutton_Click(object sender, EventArgs e)
{
if (axWindowsMediaPlayer1.settings.volume == 100)
{
axWindowsMediaPlayer1.settings.volume = 0;
bunifuSlider2.Value = 0;
}
else
{
axWindowsMediaPlayer1.settings.volume = 100;
bunifuSlider2.Value = 100;
}
}
трекбар и таймер (не код прямо сейчас)
private void trackbar_ValueChanged(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
}
Как я могу это сделать?