WPF и MusicPlayer - PullRequest
       7

WPF и MusicPlayer

0 голосов
/ 25 марта 2009

Я получил запрос на создание музыкального проигрывателя с определенными функциями.

Этот музыкальный проигрыватель будет воспроизводить музыку в режиме «Random» (первый запрос), загружая песни из папки, и еще один запрос заключается в изменении «жанра» музыки каждые 4 часа, например:

  • с 8 до 12: играет романтические песни;
  • с 12:00 до 16:00: играет «латинские» песни;
  • с 16:00 до 20:00: играет песни "Rock";
  • с 8 вечера до полуночи: играет "танцевальная" музыка;

Моя цель состоит в том, чтобы создать отдельную папку песни для каждого жанра и присвоить ей название TitleName (Romantic, Latin, Rock и т. Д.), И при запуске музыкальный проигрыватель автоматически загрузит папку песни после временного интервала.

Поэтому я прошу у вас несколько советов по поводу кода, как организовать эти функции, потому что я не знаю, как изменить жанровую музыку на несколько часов и установить музыкальный проигрыватель в режиме Random.

Ответы [ 4 ]

2 голосов
/ 25 марта 2009

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

Я бы поставил логику для этого на стороне сервера. Просто используйте любой обычный медиаплеер.

Затем на стороне сервера создайте какой-либо канал, который будет передавать URL-адреса песен для загрузки в зависимости от времени суток на сервере (корректируется смещением, если клиент его предоставляет).

Затем ваша программа будет считывать канал и получать URL-адреса песен для воспроизведения, а затем просто передавать плейлист в медиаплеер (или загружать песни и передавать их в медиаплеер) в зависимости от того, что сервер сообщает вам. .

2 голосов
/ 25 марта 2009

Вот подход.

Считайте все теги ID3 для файлов MP3, включенных в список воспроизведения или папку, используя C # ID3 Library или любое другое устройство чтения тегов ID3 ​​для файлов MP3. Проверьте список воспроизведения, прочитайте теги ID3, создайте репо. Установите таймер и выберите жанр из уже прочитанного репо

1 голос
/ 25 марта 2009

Должен ли это быть новый медиаплеер? В зависимости от ваших требований, вы можете подумать об этом в Windows Media Player. Вот хорошая отправная точка:

(проигрыватель Windows Media) Справочник по объектной модели для Visual Basic .NET и C #

Я использовал Windows Media Player SDK, чтобы сделать что-то похожее на это. Это не самый простой API, но это всего лишь одна DLL, и относительно легко отправлять ему команды, чтобы заставить WMP что-то делать. Вот ссылка на различные версии SDK (включая wmppia.dll, который вам нужен):

Загрузки Windows Media

1 голос
/ 25 марта 2009

Одним понятием, которое может оказаться полезным в вашем приложении, является концепция источников песен. Источник песни по существу будет перечисляемым элементом, который обеспечивает доступ к песням. Это может быть в первую очередь интерфейс.

Таким образом, у вас есть абстрактная концепция фрагмента кода, содержащего списки песен. Фактический проигрыватель получит доступ к любой реализации ISongSource , чтобы запустить следующую песню и воспроизвести ее. Игра немного, боюсь, я не могу вам помочь. Если ничего не помогает, вы можете создать файлы m3u (плейлисты mp3) из источников вашей песни и начать, например, Winamp через Process.Start, передавая вновь созданный плейлист. На самом деле, это звучит как аккуратная версия 1.

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

Исходя из этого, вы должны иметь возможность реализовывать источники песен, которые учитывают теги ID3, чтобы решить, какая песня должна быть частью источника.

Наконец, есть пользовательский интерфейс. Это целый мир сам по себе, особенно если у вас есть скины. Но с приличной книгой WPF и некоторыми доказательствами концепций вы должны быть на пути к достижению цели.

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...