Сегодня:
— 0 — 0 — 0
Последние:
— 24.08, 10:44 / #6695
— 29.03, 23:32 / #6682
— 30 апреля 2012
Сейчас онлайн:
На сайте — 17
На IRC-канале — 2
Написание простого медиа-проигрывателя (часть 1)
Простейший медиа-проигрыватель можно создать стандартными средствами Windows. Существуют модули, которые доступны из любого языка программирования — это ActiveX. Delphi в этом плане не исключение. Встроенный в систему Windows Media Player имеет собственный ActiveX-модуль, который мы легко можем использовать в своей программе. Правда, кардинально изменить в нём что-либо не получится. В данной статье я покажу пример, как использовать этот компонент.
Для начала ActiveX-компонент (сокращённо AX) нужно интегрировать в оболочку Delphi. Делается это легко: открываем диалоговое окно Component — Import ActiveX Control. В разных версиях Delphi этот пункт меню может называться по-разному, но ключевым остаётся слово ActiveX. В открывшемся окне в списке компонент найдите строку Windows Media Player. Нажмите кнопку Install. В появившемся окне можно указать, в какой пакет следует установить компонент. Можно оставить всё по умолчанию и нажать ОК. После этого на вкладке ActiveX палитры компонент появится кнопка WindowsMediaPlayer. Теперь можно приступить к созданию проигрывателя.
Для начала поместите компонент на форму — щёлкните по его значку и затем по форме. Вы увидите знакомое изображение — изображение проигрывателя. Его внешний вид зависит от версии установленного в системе компонента. Примерный вид того, что вы увидите, изображён на рисунке 1.
Для начала давайте сделаем возможность открытия нужного файла. За путь к файлу, который нужно воспроизводить, отвечает свойство URL типа WideString (строка). Давайте сделаем для программы меню, куда и добавим нужный нам пункт. Поместите на форму TMainMenu (страница Standard). Дважды щёлкните по значку TMainMenu, лежащему на форме. Откроется дизайнер меню. Выделите единственный пункт в заголовке меню и в его свойстве Caption напишите «Файл«. Затем щёлкните по созданному пункту и снизу появится ещё одна пустая строка. Там и введите название нашего пункта — «Открыть«. Следующей строкой давайте создадим разделитель для меню — в свойстве Caption поставьте один-единственный символ — минус («—«). Следующей строкой сделайте пункт «Выход«. Ну вот, программа уже имеет меню, хотя и небольшое. Теперь нужно связать пункт меню с диалогом открытия файла. Найдите компонент TOpenDialog на странице Dialogs и поместите его на форму. Активируйте свойство Filter и нажмите на кнопку с тремя точками («. «). В появившемся окне введите желаемые типы файлов. В поле Filter Name нужно ввести описание типов файлов, а в поле Filter — сам фильтр. Пример на рисунке 2.
Чтобы с компонентом было удобно работать, измените его свойство Name на MediaPlayer.
Выделите компонент и перейдите в окно Object Inspector. Свойств (Properties) у компонента не очень много, а вот событий (Events) гораздо больше. Но мы используем лишь некоторые из них.
Для удобства, компонент MainMenu1 переименуем в MainMenu, а OpenDialog1 — в OpenDialog.
Пришло время запрограммировать пункт меню «Открыть«. Откройте дизайнер меню и дважды щёлкните по нужному пункту — откроется редактор кода. В этом месте следует написать:
Метод Execute открывает диалог и, если пользователь не нажал «Отмена«, то функция возвращает значение True, а в FileName записывается путь к выбранному файлу. Затем мы присваиваем свойству URL проигрывателя выбранный файл. Запустите программу и попробуйте открыть файл. Всё должно работать, файл должен воспроизводиться.
Теперь давайте приведём окно проигрывателя к нормальному виду. Сам проигрыватель нужно растянуть на всю ширину окна — измените его свойство Align на alClient. Саму форму стоит сделать поменьше, т.к. наш проигрыватель пока что воспроизводит только аудио-файлы. На мой взгляд, для формы можно установить ширину (Width) равной 300, а высоту (Height) — 200. Наконец, можно изменить вид окна и установить BorderStyle в значение bsSizeToolWin, а заголовок (Caption) — «Simple Media Player«.
Теперь запрограммируем пункт «Выход» — для этого следует написать в его обработчике всего одну строку:
Этот метод закрывает текущую форму (Self — объект, выбранный по умолчанию, форма) и завершает приложение.
Теперь нужно сделать в меню элементарные команды управления воспроизведением — Start, Stop, Pause. Конечно, в проигрывателе и без того есть существующие кнопки, но они должны иметь своё отражение и в меню.
Для начала добавьте в заглавную строку меню (туда, где «Файл«) пункт «Управление«. Затем добавьте два пункта — «Старт / Стоп» и «Пауза«. Запрограммировать эти команды легко. Для управление воспроизведением служит набор методов Controls, а узнать текущее состояние проигрывателя можно из свойства PlayState. Вот как выглядит обработчик пункта «Старт / Стоп«:
А вот обработчик «Паузы«:
Запустите программу и проверьте её работоспособность.
Как видите, мы создали сравнительно простой, но рабочий проигрыватель. В следующий раз мы продолжим его разработку. Примерное изображение окна программы после выполнения всех действий, описанных в статье, показано на рисунке.
Автор: Ерёмин А.А.
Статья добавлена: 16 февраля 2006
Зарегистрируйтесь/авторизируйтесь,
чтобы оценивать статьи.
Статьи, похожие по тематике
Для вставки ссылки на данную статью на другом сайте используйте следующий HTML-код:
Ссылка для форумов (BBCode):
Быстрая вставка ссылки на статью в сообщениях на сайте:
<
<<статья:17>> — полноценная HTML-ссылка на статью (текст ссылки — название статьи).
Поделитесь ссылкой в социальных сетях:
Комментарии читателей к данной статье
Не OpenPictureDialog, а OpenDialog использовать надо!
Вы в type указали одно, а в процедуре TForm1.N2Click указываете на совершенно иной, несуществующий объект.
Будьте внимательны!
.
type
TForm1 = class(TForm)
WindowsMediaPlayer: TWindowsMediaPlayer;
MainMenu: TMainMenu;
OpenDialog: TOpenDialog; <- вот так эту строчку записать надо>
N1: TMenuItem;
N2: TMenuItem;
.
я впервый раз пробую сделать что то подобное и у меня неполучилось хотя внешний вид как на картинке а вот с кодом чет нетак скажите что unit Unit1;
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtDlgs, OleCtrls, WMPLib_TLB;
type
TForm1 = class(TForm)
WindowsMediaPlayer: TWindowsMediaPlayer;
MainMenu: TMainMenu;
OpenPictureDialog: TOpenPictureDialog;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Eghfdktybt1: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
private
< Private declarations >
public
< Public declarations >
end;
procedure TForm1.N2Click(Sender: TObject);
begin
if OpenDialog.Execute then
MediaPlayer.URL:=OpenDialog.FileName;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Self.Close;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
IF
MediaPlayer.PlayState = wmppsPlaying Then
MediaPlayer.Controls.Stop
Else
MediaPlayer.Controls.Play;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
IF
MediaPlayer.PlayState = wmppsPlaying Then
MediaPlayer.Controls.Stop
Else
MediaPlayer.Controls.Play;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
IF
MediaPlayer.Playstate =wmppsPlaying Then
MediaPlayer.Controls.Pause;
end;
Оставлять комментарии к статьям могут только зарегистрированные пользователи.
Delphi. Создание mp3 плеера на основе WindowsMediaPlayer
Увидел замечательный компонент WindowsMediaPlayer, который можно использовать в своих проектах. Честно, сказать, по функциональности и простоте использования для моих задач он подходит больше всего. Я уже писал mp3 плееры на bass.dll и на TMediaPlayer. Но там везде свои ограничения. При помощи bass.dll я не смог создать компонент в Delphi (но это видимо только моя недоработка – недостаток опыта, а TMediaPlayer хорош своей простотой, но нужно возиться с дизайном, а также у него проблемы с проигрыванием mp4 файлов, которые нужны были мне для одной из задач). Словом, для коллекции, решил оформить ещё один mp3 плеер на основе компонента WindowsMediaPlayer из ActiveX.
Попробуем создать на основе него свой класс TAudioPanelWMP. Выглядеть это будет примерно так…
В тестовой программе экземпляр класса создавать будем динамически.
Инсталляция WindowsMediaPlayer
Здесь подробно останавливаться не буду, в сети масса инструкций на эту тему. Вот одна из них.
Если кратко, то Component > ImportComponent > Import ActiveX Control > Windows Media Player > далее…
Ну и далее финишируем установку с сообщением об успехе.
Пара слов о том, что компонент использует, чтобы потом корректно распространять свои программы…
Я так понимаю, чтобы плеер корректно работал нужна wmp.dll
Также на MSDN в разделе Сведения о версии указано, что требуется .NET 3.0 и выше.
Компоненты Windows Media Player в Delphi
Delphi 7 Windows Media Player
W.Media Player не изменяет размер при растягивании окна. Свойство Align:=alclient; Если.
Windows Media Player в Delphi
Где взять компонент Windows Media Player в Delphi. Недавно в Visual Basic 6.0 видел такой.
Windows Media Player vs Delphi
Здравствуйте! Ребята, если кто работал с данным компонентом, помогите прикрутить к нему плейлист.
Ошибки работы Windows Media Player в Delphi 7
Приветствую. Мне нужен был плеер в мою программу. Стандартный MediaPlayer не очень мне нравится.
А как заставить TWindows Media Player показывать видео «в себе»?
Импортнул TWMP, он отлично встал на форму.
Открывает Windows Media Player в отдельном окне!
Как же быть?
Добавлено через 4 минуты
Оказывается делается это так:
А как заставить TWindows Media Player показывать видео «в себе»?
Импортнул TWMP, он отлично встал на форму.
Открывает Windows Media Player в отдельном окне!
Как же быть?
Добавлено через 4 минуты
Оказывается делается это так:
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Нужно исправить ошибку с Windows Media Player
Здравствуйте! Я написал программу-конвертер из фунтов в килограммы. Суть в том, что при нажатии на.
Media Player
Такая ситуация, сделал перемотку видео используя TrackBar, вот. Как сделать так чтобы ползунок.
media player,listbox
Приветствую,суть в следующем,нажатием на кнопку выбираем mp3 файл, далее он появляется в listbox.
Media Player с полосой прогресса
Добрый вечер Пытаюсь реализовать полосу прокрутки в песне. Хотел использовать Image. Чтобы он.