Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК ПП1 (C++ БД).doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
5 Мб
Скачать
☆

Работа 2.9. Встраивание звука

[1], с.407-427

Цель: Изучение способов подключения к приложению звукового сопровождения

Результат: Получить программу для воспроизведения музыкальных файлов.

Последовательность действий.

  1. Изучите тему 9.1 настоящего пособия

  2. Постройте интерфейс и программу для запуска простейшего варианта медиаплеера, использовав как образец листинг рис. 56.

  3. Создайте интерфейс для более общей задачи работы с звуковыми файлами по образцу рис. 125.

Рис. 125. Проигрывание различных звуковых файлов

Роль кнопок управления приведена в следующей таблице:

Кнопка

Действие

Play

Воспроизведение

Pause

Пауза воспроизведения или записи

Stop

Останов воспроизведения или записи

Next

Переход на следующий трек или на конец

Prev

Переход на предыдущий трек или на начало

Step

Перемещение вперед на заданное число кадров

Back

Перемещение назад на заданное число кадров

Record

Начало

Eject

Освобождение, установка исходного состояния

4. Запрограммируйте обработчики, пользуясь для образца текстом листинга на рис. 126. Разберитесь самостоятельно в особенностях запуска встроенных в Windows звуков и мелодий. Обратите внимание, что запуск воспроизведения возможен как по кнопке плеера Play, так и по собственной кнопке «Запустить»

#include <vcl.h>

#pragma hdrstop

#include "uPlay.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

AnsiString sFileName;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm1::FormActivate(TObject *Sender)

{ MediaPlayer1->FileName ="Patricia Kaas.mp3"; //загрузка плеера файлом по умолчанию

Label1->Caption="Patricia Kaas.mp3";// имя файла заносится в метку Label1

MediaPlayer1->Open();//открывается доступ к кнопкам плеера.

}

void __fastcall TForm1::bExitClick(TObject *Sender)

{Close();

}

void __fastcall TForm1::bFindClick(TObject *Sender)

{ if (OpenDialog1->Execute())

{ sFileName=ExtractFileName(OpenDialog1->FileName);

Label1->Caption=sFileName;// имя файла заносится в метку Label1

MediaPlayer1->Eject(); //сброс плеера в исходной состояние

MediaPlayer1->FileName=OpenDialog1->FileName; //загрузка плеера файлом MediaPlayer1->Open();

}//конец if

}

void __fastcall TForm1::bPlayClick(TObject *Sender)

{ Label1->Caption=sFileName;

MediaPlayer1->FileName =sFileName;

MediaPlayer1->Open();

MediaPlayer1->Play();

}

void __fastcall TForm1::bStopClick(TObject *Sender)

{ MediaPlayer1->Close();

}

void __fastcall TForm1::bSoundClick(TObject *Sender)

{PlaySound ("C:\\chimes.wav",0,SND_ASYNC);

}

void __fastcall TForm1::bBeepClick(TObject *Sender)

{Beep();

}

void __fastcall TForm1::ListBox1KeyPress(TObject *Sender, char &Key)

{ if (Key==VK_RETURN) Beep();

}

Рис. 126. Листинг программы проигрывания различных звуковых файлов

Содержание отчёта: см.п. 3.5 «Требования к оформлению отчетов по лабораторным работам».