Aboobakkar Siddeq D U Ответов: 1

Как добавить несколько файлов в Проигрыватель Windows Media на языке C#?


Я хочу создать небольшое приложение для windows, которое непрерывно воспроизводит mpe-файлы один за другим. Я могу добавить много mp3-файлов и воспроизводить их один за другим, щелкая по каждому файлу. Но на самом деле я хочу, чтобы автоматически он перескочил в следующую песню.


Так может ли кто-нибудь помочь мне?


Спасибо в @dv@nce......:P

Nelek

Да, здесь, в КП, есть много очень способных людей, которые могут вам помочь. Но вы не описали никаких проблем. Прочесть А что вы пробовали?[^] так что вы можете понять, что я говорю

MuhammadUSman1

Вы можете сделать это легко, но, как сказал Нелек, что вы пробовали? так что для

Aboobakkar Siddeq D U

Да, я пытался много раз. И все же я пытаюсь это сделать. Но я ничего об этом не знаю. На самом деле я хочу воспроизводить песню непрерывно, одну за другой, без остановки, без нажатия какой-либо кнопки или каких-либо файлов. Так ты можешь мне помочь?

Aboobakkar Siddeq D U

ЭТО МОЙ КОД ЗДЕСЬ Я МОГУ ИГРАТЬ ПЕСНЮ НАПРЯМУЮ НО ОН БУДЕТ ИГРАТЬ ТОЛЬКО ОДНУ ПЕСНЮ И ОСТАНОВИТСЯ ТАМ Я ХОЧУ ИГРАТЬ 2 Ю ПЕСНЮ БЕЗ НАЖАТИЯ КАКИХ ЛИБО КНОПОК ИЛИ ФАЙЛОВ


использование системы;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
использование System.Data;
использование системы.Рисование;
использование System.Linq;
использование System.Text;
использование системы.Окна.Формы;
использование системы.ИО;

пространство имен Mp3Player
{
общественный разделяемого класса frmMp3Player : форма
{
боол _IsAddFiles = ложь;
string[] файлы, пути;

общественные frmMp3Player()
{
метод InitializeComponent();
}

частная btnPlay_Click недействительным(объект отправителя, EventArgs в электронной)
{
_IsAddFiles = ложь;
Диалоговое окно openfiledialog ОПД = новое диалоговое окно openfiledialog();
ОПД.Множественный = истина;

если (ОПД.Метод Showdialog() == Система.Окна.Формы.свойство DialogResult.ОК)
{
файлы = opd.SafeFileNames;
пути = opd.файловые имена;
для (int i = 0; i < files.Длина; i++)
{
список listbox1.Предметы.Добавить(файлы[i]);
}
}
}

private void listBox1_SelectedIndexChanged(отправитель объекта, EventArgs e)
{
если (_IsAddFiles.Равно(ложь))
{
показатель инт = инт.Синтаксический анализ(список listbox1.Свойства selectedIndex.Метод toString());
axWindowsMediaPlayer1.URL = пути[индекс];
}
еще
{
строковое имя файла = listBox1.SelectedItem.Метод toString();
axWindowsMediaPlayer1.URL = @"D:\Mp3Files\" + имя файла;
}
}

частная btnAdd_Click недействительным(объект отправителя, EventArgs в электронной)
{
_IsAddFiles = истина;
строка file1=строка.Пустой;
Каталог DirectoryInfo = новый каталог DirectoryInfo(@"D:\Mp3Files");
FileInfo[] files = каталог.GetFiles("*.mp3");
foreach (FileInfo file in files)
{
file1 = файл.Имя;
список listbox1.Предметы.Добавить(файл1);
}
}

частная frmMp3Player_Load недействительным(объект отправителя, EventArgs в электронной)
{
//если (axWindowsMediaPlayer1.playState != WMPLib.WMPPlayState.wmppsPlaying)

LoadSongs();
if (listBox1.Предметы.Считай != 0)
{
for (int i = 0; i < listBox1.Предметы.Граф; i++)
{
список listbox1.Свойства selectedIndex = я;
перерыв;
}
}
}

общественного недействительными LoadSongs()
{
_IsAddFiles = истина;
строка file1 = строка.Пустой;
Каталог DirectoryInfo = новый каталог DirectoryInfo(@"D:\Mp3Files");
FileInfo[] files = каталог.GetFiles("*.mp3");

foreach (FileInfo file in files)
{
file1 = файл.Имя;
список listbox1.Предметы.Добавить(файл1);
}
}
}
}

1 Ответов

Рейтинг:
1

Pete O'Hanlon

Все, что вам нужно сделать, это подписаться на обработчик событий PlayStateChange. Одним из параметров в обработчике событий является WMPOCXEvents_PlayStateChangeEvent экземпляр, который имеет newState собственность. Если newState это означает, что текущая песня остановилась, так что вы должны быть в состоянии начать следующую песню тогда.


phil.o

Наконец, йода вернулся, чтобы откопать и ответить на оставшиеся вопросы :)

Pete O'Hanlon

Он выскочил на вершину очереди из-за того, что его только что обновили.

phil.o

Да. В любом случае, это не так уж плохо-давать ответы на оставшиеся без ответа вопросы, даже старые. Если кто-то когда-нибудь воспользуется функцией поиска для этого запроса, ответ окажется полезным.