Я хотел создать проигрыватель musi c, который может воспроизводить как локальные файлы, так и потоки. Для этого я использую axWindowsMediaPlayer. Итак, проблемы, с которыми я боролся, это как автоматически воспроизвести следующую песню из библиотеки. Во-первых, я создал библиотеку, локальную SQL базу данных, в которой я храню название, жанр, год, исполнителя и путь к песне. Я вытаскиваю данные и показываю их в dataGridView. Мне удалось начать импортировать песни, играть, громкость, воспроизведение / пауза и индикатор выполнения. Но сейчас я не могу понять, как я могу сделать этот автозапуск. Я пробовал несколько вещей, например, чтобы сделать таймер, который проверяет, является ли playState MediaEnded. Затем программа должна воспроизвести песню с ID + 1. И это не работает вообще. Затем я попытался создать список воспроизведения, а затем установить автозапуск в настройках axWindowsMediaPlayer. Но это тоже не сработало. Что вы думаете об этом? Вот некоторый код, который я пробовал:
private void timer2_Tick(object sender, EventArgs e)
{
int currentMedia = bunifuCustomDataGrid1.CurrentRow.Index;
if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
string s = bunifuCustomDataGrid1.Rows[currentMedia + 1].Cells[3].Value.ToString();
axWindowsMediaPlayer2.URL = s;
axWindowsMediaPlayer2.Ctlcontrols.play();
TagLib.File file = TagLib.File.Create(s);
string title = file.Tag.Title;
string author = file.Tag.FirstPerformer;
string album = file.Tag.Album;
string year = file.Tag.Year.ToString();
string genre = file.Tag.FirstGenre;
TagLib.IPicture p = file.Tag.Pictures[0];
MemoryStream ms = new MemoryStream(p.Data.Data);
ms.Seek(0, SeekOrigin.Begin);
Bitmap bitmap = new Bitmap(ms);
picCover.BackgroundImage = bitmap;
lblTItle.Text = author + " - " + title;
lblAlbumYear.Text = "Album and year: " + album + "/" + year;
lblGenre.Text = "Genre: " + genre;
}
else if(axWindowsMediaPlayer2.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
string s = bunifuCustomDataGrid1.Rows[currentMedia + 1].Cells[3].Value.ToString();
axWindowsMediaPlayer1.URL = s;
axWindowsMediaPlayer1.Ctlcontrols.play();
TagLib.File file = TagLib.File.Create(s);
string title = file.Tag.Title;
string author = file.Tag.FirstPerformer;
string album = file.Tag.Album;
string year = file.Tag.Year.ToString();
string genre = file.Tag.FirstGenre;
TagLib.IPicture p = file.Tag.Pictures[0];
MemoryStream ms = new MemoryStream(p.Data.Data);
ms.Seek(0, SeekOrigin.Begin);
Bitmap bitmap = new Bitmap(ms);
picCover.BackgroundImage = bitmap;
lblTItle.Text = author + " - " + title;
lblAlbumYear.Text = "Album and year: " + album + "/" + year;
lblGenre.Text = "Genre: " + genre;
}
}