Урок 9 - вивчаємо компонент tmediaplayer

Розглянемо основні властивості:

AutoEnable - Автоматичне завдання доступних і недоступних кнопок в залежності від режиму Mode;

AutoOpen - Визначає автоматичний запуск медіа-плеєра в момент початку виконання програми;

AutoRewind - Автоматична перемотування. Якщо AutoRewind встановлено в true і поточна позиція відповідає кінцю, то перед виконанням Play або StartRecording проводиться переміщення поточної позиції в початок перед відтворенням або записом. При AutoRewind встановленому в false, перемотування повинна здійснюватися користувачем кнопкою Prev або програмно методом Previous. Якщо задані значення StartPos або EndPos, або якщо пристрій використовує треки, властивість AutoRewind не працює;

Display - Визначає вікно, яке використовується для виведення;

DisplayRect - Визначає область відображення у вікні, зазначеному властивістю Display;

EnabledButtons - Визначає доступні кнопки;

FileName - Визначає ім'я файлу, що відкривається методом Open або зберігається методом Save;

Position - Вказує поточну позицію в завантаженому об'єкті відповідно до формату TimeFormat. За замовчуванням позиція на початку об'єкта або на початку першого треку;

VisibleButtons - Вказує, які кнопки медіа-плеєра видимі. За замовчуванням видимі все кнопки. Кнопки, не перераховані в безлічі VisibleButtons типу TButtonSet, невидимі;

Отже, викладіть на форму компонент TMediaPlayer і у властивості FileName вкажіть який-небудь MP3 файл. Тепер запустіть додаток. Як бачите нічого не відбувається і кнопки компонента неактивні. Чому? Потомучто ми тільки вказали шлях до файлу. Його ще потрібно відкрити. Встановіть властивість AutoOpen в True. І знову запустіть додаток. Тепер кнопки будуть активні. При натисканні на кнопку Play почнеться відтворення.

Як же здійснити вибір файлу? Дуже просто! Все що потрібно - це просто прогрммно змінити властивість FileName. Перед тим, як починати писати, що або необхідно представляти як це буде виглядати. В даному випадку виглядати це буде наступним чином: при натисканні на кнопку на формі (далі ми додамо її) з'являється діалогове вікно вибору файлу. Ми вибираємо файл і обраний файл відтворюється.

Додайте на форму компоненти TButton і TOpenDialog (на вкладці Dialogs панелі інструментів). Змініть у кнопки властивість Caption на "Відкрити". Створіть подія OnClick (двічі клікнути на кнопку). там пишемо:

Що ж таке OpenDialog1.Execute? Це те ж саме якби я написав OpenDialog1.Execute = true. Чи означає це наступне: при виклику OpenDialog1.Execute з'являється діалог відкриття файлу і якщо користувач натисне "Скасування" то функція Execute поверне False, а якщо вибере файл то True. Тут і виходить, що якщо користувач вибрав файл, то шлях до нього потрібно записати в властивість FileName і відкрити цей файл. Тепер можна запустити програму і спробувати відкрити файл.

Але компонент виглядати негарно. Викладемо на форму 3 кнопки (TButton). Змініть властивість Caption у першій кнопки на "Відтворити". Створіть подія OnClick у цій же кнопки:

У наступній кнопки змініть Caption на "Пауза". По кліку:

І напис на останній кнопці напишіть "Стоп". Клацніть по ній два рази і напишіть наступне:

MediaPlayer1.Position - це встановлюємо позицію відтворення в початок. Щоб якщо натиснути на кнопку "Відтворити" відтворення не тривало а починалося спочатку.

Тепер можна запустити програму. Але нам тепер потрібно зробити так, щоб не було видно компонента TMediaPlayer. Зробити це просто, змінивши властивість Visible у нього на False.

Зробимо "бігунок" який буде показувати позицію відтворення. Викладемо на форму компонент TTrackBar і TTimer. Такий компонент ви вже бачили багато разів в інших програмах і знаєте для чого він потрібен. Клацніть два рази по кнопці з написом "Відкрити" і трохи змініть код:

Додалася ще одна строчка - TrackBar1.Max: = MediaPlayer1.Length. Властивість Max - це максимальне значення у TTrackBar. Position - це поточна позиція, тобто цей параметр може змінюватися від 0 до Max. От саме це ми і будемо робити. MediaPlayer1.Length - Це довжина файлу.

Тепер розберемося з таймером. У таймера дві основні властивості: Interval і Enabled. Перше це інтервал в мілісекундах після закінчення якого виконається дія описане в подію OnTimer. А друге це буде чи таймер працювати.

Клацніть двічі по іконці таймера розташованого на формі. Створиться процедура яка буде виконуватися кожні, наприклад, 1000 мілісекунд (якщо властивість Interval = 1000). Зробіть так:

Тепер кожну секунду (1000 мілісекунд) буде позиція TrackBar1 встановлюватися залежно від позиції відтворення.

Залишилося очистити встановлений на самому початку властивість FileName У TMediaPlayer, а також властивість AutoOpen в False. Інакше програма буде намагатися відкрити файл вказаний в FileName, але так як там нічого не написано, то станеться помилка.

Ну от і все. Програма працює. Звичайно її ще до розуму потрібно доводити, це тільки самий мінімум. Потрібно буде зробити заборону на натискання кнопок коли їх не можна натискати (наприклад можна натискати кнопку "Відтворення" якщо Ви не оберете файл, інакше станеться помилка). Можна зробити інтерфейс прогрмми з симпатичними кнопками, завантаживши картинки в компоненти TImage.

В даному уроці ми разабралі три компонента TMediaPlayer, TTimer і TTrackBar.

Буде дуже корисно якщо ви будете в кожному уроці робити більше ніж описано.

Урок 10: Основи роботи з Canvas