Проблемы с проигрывателем Musi c - PullRequest
0 голосов
/ 18 марта 2020

Я хотел создать проигрыватель 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;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...