Russian English
   Basic.net
Среда, 23.09.2020, 03:22
Меню сайта
Категории раздела
Basic [28]
У нас вы можете бесплатно скачать QBasic, VisualBasic, FreeBasic, GW-Basic.
QBasic [4]
Visual Basic [4]
GW-Basic [0]
Игры [1]
FreeBasic [1]
PowerBasic [1]
Облако тегов
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа
Главная » Файлы » Basic

Делаем музыкальный плеер в Visual Basic. Часть 1
Share |
[ Скачать с сервера (10.88 Mb) ]
24.06.2013, 21:31
Пожалуй, среди всех языков семейства Basic его диалект Visual Basic обладает наибольшими возможностями, кроме того, они ещё и расширяются благодаря поддержке WinAPI и множеству компонентов - написать можно любую программу, ну разве что кроме драйвера. 
В этой статье я расскажу, как можно использовать компонент Windows Media Player (по сути, это лишь библиотека от одноимённого проигрывателя) для создания своего собственного музыкального проигрывателя.

Шаг 1: установка на форму необходимых компонентов.
Для начала нам нужно разместить компонент, ответственный за воспроизведение, на форме. Поскольку WMP есть на всех компьютерах с Windows, то смело идем в Projects-Components, ищем его в списке (если не нашли, загрузите прилагаемый к статье файл), ставим около него галочку и жмем ОК. Появился новый элемент на панели General. Ставим его на форму (растягивать не нужно), ставим свойства Name - Player, Visible - False.

Второй компонентом, который мы будем использовать, является Microsoft Common Dialog 6.0 (если его нет в списке, ищите в Интернете файл comdlg32.ocx, например здксь - http://www.dll.ru/dll/4410.html). Устанавливаем его на форму точно так же, как и первый компонент. Дадим ему имя CDlg1. Он позволяет открывать файлы пользователю, не вводя полный его путь в строку, а выбирая из раскрывающегося списка.

Шаг 2: делаем процедуру открытия файла.
Прежде всего нам нужно продумать, как пользователь будет открывать файл в нашем проигрывателе, причем нужно сделать это как можно удобнее. Как я уже писал выше, для этого можно всего использовать компонент Common Dialog.
Растягиваем по форме CommandButton (свойство Name - cmdOpen), и пропишем следующий код:

CDlg1.ShowOpen
Player.url = CDlg1.FileName

Метод ShowOpen объекта CDlg1 открывает окно выбора файла, а свойство FileName содержит его путь. Свойство Url объекта Player содержит путь проигрываемого файла. 

Шаг 3: делаем базовые функции.
У нашего объекта Player имеется большое число разных методов и свойств, почти все они сгруппированы по определенному признаку. Начнем знакомство с самыми важными: Controls (контроль за воспроизведением) и Settings (настройки воспроизведения).
Размещаем на форме три кнопки, свойство Caption у них - Play, Pause и, соответственно, Stop. Вы уже догадались, что мы сейчас сделаем. В коде первой пишем такую простую инструкцию:

Player.controls.play 

Дальше делаем аналогично, заменяя название метода play на pause и stop. Запускаем, открываем любой музыкальный файл - всё работает! 

Шаг 4: прокрутка записи в нужное место.
Идём далее. Хочется прежде всего добавить возможность прокрутки записи. Для этого подключаем компонент Microsoft Windows Common Controls 6.0 (если нет, ищем mscomctl.ocx, например здесь - http://www.dll.ru/dll/11821.html). После этого на панели General появится несколько новых объектов, но нас интересует только объект Slider. Растягиваем по форме, даем ему имя Position. Кроме того, ставим на форме таймер tmrUpdate со свойством Interval = 1 (т.е. обновление каждую миллисекунду). Сначала пропишем следующий код в таймере:

Position.Value = Player.Controls.currentPosition

Расположение вертикальной черты с слайдере будет равно текущей позиции в записи, это будет проверятся каждую миллисекунду и при необходимости корректироваться, что обеспечит движение слайдера. Свойство currentPosition содержит текущую позицию записи в секундах.
Ну а в процедуре Position.MouseDown (вызывается при изменении позиции слайдера) следующий код:

tmrUpdate.Enabled = False
Player.Controls.currentPosition = Position.Value

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

Position.Max = Fix(Player.currentMedia.duration)

поскольку currentMedia.duration содержит длину записи в секундах, оператор Fix отбрасывает дробную часть, которая содержит текущую миллисекунду. Для оформления можете поставить рядом со слайдером Label для отображения общей длины записи, а также Label с текущей позицией, и добавить в таймер

lblTime.Caption = Player.currentMedia.durationString
lblCurrentPos.Caption = Player.controls.currentPositionString


поскольку свойства durationString и currentPositionString содержит данные о записи в удобном формате ЧЧ:ММ:СС.

Шаг 5: настройка воспроизведения.
Существует множество способов настроить воспроизведение файла с помощью компонента WMP, вы можете добавить в свой проект на выбор некоторые из них:
  • Инструкция Player.controls.fastForward производит ускоренное воспроизведение вперед, а Player.controls.fastReverse назад. Позволяет бегло прослушать всю запись. Что остановить, достаточно команды Player.controls.Pause, а затем снова Player.controls.Play, чтобы продолжить.

  • Можно установить ещё один слайдер для изменения баланса динамиков. Свойство у слайдера Max = 100, SelStart = 50. При событии Slider2.MouseDown прописать Player.settings.Balance = Slider2.Value

  • Таким же способом меняют громкость. Ещё один слайдер, и опять при MouseDown похожая инструкция: Player.settings.Volume = Slider3.Value

  • Свойство Player.settings.mute может иметь два значения - True и False. Выключение, и, соответственно, включение звука (точнее изменение громкости до 0 и до первоначального значения, поскольку запись продолжает играть).



И на этом первая часть моей статьи подходит к концу. Здесь было показано использование основных методов и свойств компонента Windows Media Player, и по сути мы обошлись почти без кода - для каждого действия используется лишь 1-2 строки, вот настолько нам этот компонент облегчил жизнь и не пришлось "изобретать велосипед" самим.
В следующих частях будет немного сложнее, мы будем создавать и воспроизводить в нашем плеере плейлисты, добавлять возможность проигрывания CD/DVD дисков, выводить пользователю информацию о текущей записи из тегов в программу и т.д.

Категория: Basic | Добавил: Admin
Просмотров: 7583 | Загрузок: 380 | Комментарии: 2 | Рейтинг: 5.0/2
Всего комментариев: 2
1 Алексей   (23.03.2014 14:14) [Материал]
Здравствуйте,хотел спросить,скажите пожалуйста в каком Visual Baisic была создана программа в Visual Baisic 6.0 или Visual Baisic NET???

2 Admin   (26.03.2014 21:04) [Материал]
Visual Basic 6

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Наш опрос
Какую версию Basic вы предпочитаете?
Всего ответов: 2028

© Basic.ucoz.net, 2020