Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Очень хорошо по языку С. С++.DOC
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
931.33 Кб
Скачать

4.9.Мультимедиа.

Мультимедиа - это использования звука и видео в программах. Для работы со звуком (файлами с расширением wav и mid) нужна звуковая карта - Soundblaster.

В файлах с расширением wav записано цифровое представление информации о волновой форме электрического сигнала, соответствующего звуку.

Файлы с расширением mid используются для хранения музыкальных фрагментов. Звук в этих файлах хранится в виде данных о том на каком инструменте исполняются те или иные ноты и как они звучат (цифрой эквивалент дирижерской партитуры).

Файл с расширением avi представляет оцифрованное изображение в виде кадров, которые сменяются с частотой 24 (могут быть отличия в различных системах) кадра в секунду. Обычно видеофайлы сжаты, т.к. занимают достаточно много места в памяти. Для сжатия применяется в основном следующий метод: определяется неподвижная часть изображения, по сравнению к начальному кадру и эта информация сжимается, т.е. сохраняются только отличия одного кадра от другого.

Для проигрывания wav файлов в C++ Builder используется процедура PlaySound. Рассмотрим пример – по нажатию клавиши Button – проигрывается звуковой файл bomb.wav.

//---------------------------------------------------------------------------

#include <vcl\vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "mmsystem.hpp"

//---------------------------------------------------------------------------

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

PlaySound("bomb.wav",0,SND_SYNC);

}

//---------------------------------------------------------------------------

Как видно из программы дополнительно введен модуль mmsystem (в котором хранятся константы для функции PlaySound) и вызвана API функция PlaySound, которая имеет три параметра:

Первый параметр - "bomb.wav" типа AnsiString - содержит имя проигрываемого файла.

Второй параметр (в нашем случае 0) применяется, если файл содержится в файле ресурсов.

Третий параметр специфицирует опции, задающие способ воспроизведения звука.

Для проигрывания всех типов мультимедийных файлов можно использовать компонент MediaPlaer.

Рассмотрим пример, проигрывания avi, wav и mid файлов.

На форме расположим компоненты: MainMenu, OpenDialog, MediaPlayer, добавим к меню команду File|Open и в событие меню Open введем код:

void __fastcall TForm1::Open1Click(TObject *Sender)

{

if(OpenDialog1->Execute())

{

MediaPlayer1->FileName=OpenDialog1->FileName;

MediaPlayer1->Open();

}

}

Общий вид программы следующий:

//---------------------------------------------------------------------------

#include <vcl\vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)

{

if(OpenDialog1->Execute())

{

MediaPlayer1->FileName=OpenDialog1->FileName;

MediaPlayer1->Open();

}

}

//---------------------------------------------------------------------------

Загружая через меню тот или иной мультимедийный файл мы сможем его проигрывать.

В случае, если панель проигрывателя показывать не надо, а проигрывать файл необходимо, то свойство Visible компоненты MediaPlayer нужно установить равным false.

Рассмотрим пример - информационной системы - в зависимости от выбранной радиокнопки проигрывается тот или иной avi файл. Используются компоненты: MediaPlayr, RadioGroup, RadioButton, Panel, Button.

Основная логика программы реализуется в обработке события OnClick кнопки Button. Когда пользователь нажимает кнопку, программа проверяет, какая из радиокнопок выбрана. В зависимости от этого проигрывается один из трех avi-файлов.

//---------------------------------------------------------------------------

#include <vcl\vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

MediaPlayer1->Display=Panel1;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if(RadioButton1->Checked)

MediaPlayer1->FileName="1.AVI";

if(RadioButton2->Checked)

MediaPlayer1->FileName="2.AVI";

if(RadioButton3->Checked)

MediaPlayer1->FileName="3.AVI";

MediaPlayer1->Open();

MediaPlayer1->DisplayRect=Rect(0,0,

Panel1->Width,Panel1->Height);

MediaPlayer1->Play();

}

//---------------------------------------------------------------------------