Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

Просмотр видеороликов и анимации

Компонент MediaPlayer, значок которого находится на вкладке System(на рисунке, позволяет воспроизводить видеоролики, звук и сопровождаемую звуком анимацию.

В результате добавления к форме компонента MediaPlayer на форме появляется группа кнопок, подобных тем, которые можно видеть на обычном аудио- или видеоплеере. Назначение этих кнопок пояснено в таблице. Свойства компонента MediaPlayer приведены в следующей таблице.

Кнопки компонента MediaPlayer

Кнопка Обозначение Действие
Воспроизведение btPlay Воспроизведение звука или видео
Пауза btPause Приостановка воспроизведения
Стоп btStop Остановка воспроизведения
Следующий btNext Переход к следующему кадру
Предыдущий btPrev Переход к предыдущему кадру
Шаг btStep Переход к следующему звуковому фрагменту, например, к следующей песне на CD
Назад btBack Переход к предыдущему звуковому фрагменту, например, к предыдущей песне на CD
Запись btRecord Запись
Открыть/Закрыть btEject Открытие или закрытие CD-дисковода компьютера

Свойства компонента MediaPiayer

Свойство Описание
Name Имя компонента. Используется для доступа к свойствам компонента и управлением работой плеера
DeviceType Тип устройства. Определяет конкретное устройство, которое представляет собой компонент MediaPiayer. Тип устройства задается именованной константой: dtAutoSelect - тип устройства определяется автоматически; dtVaweAudio - проигрыватель звука; dtAVivideo - видеопроигрыватель; dtCDAudio - CD- проигрыватель
FileName Имя файла, в котором находится воспроизводимый звуковой фрагмент или видеоролик
AutoOpen Признак автоматического открытия сразу после запуска программы, файла видеоролика или звукового фрагмента
Display Определяет компонент, на поверхности которого воспроизводится видеоролик (обычно в качестве экрана для отображения видео используют компонент Panel)
VisibleButtons Составное свойство. Определяет видимые кнопки компонента. Позволяет сделать невидимыми некоторые кнопки

Просмотр видеороликов и анимации

Помимо воспроизведения звука, компонент MediaPiayer позволяет просматривать видеоролики и мультипликации, представленные как AVI-файлы (AVI - это сокращение от Audio Video Interleave, что переводится как чередование звука и видео, т. е. AVI-файл содержит как звуковую, так и видеоинформацию) .

Процесс использования компонента MediaPiaer для посмотра содержимого AVI-файла рассмотрим на примере программы, которая в результате щелчка на командной кнопке воспроизводит на поверхности формы простую сопровождаемую звуковым эффектом мультипликацию - вращающееся по часовой стрелке слово Delphi.

Вид диалогового окна программы приведен на рисунке, а значения свойств компонента MediaPlayerl - В таблице.


Свойства компонента MediaPiayer

Свойство Описание
Name MediaPlayer1
FileName delphi.avi
DeviceType dtAVIVideo
AutoOpen True
Display Panel1
Visible False

Создается форма приложения обычным образом. Компонент Paneii используется в качестве экрана, на который осуществляется вывод анимации, и его имя принимается в качестве значения свойства Display компонента MediaPlayeri. Поэтому сначала к форме лучше добавить компонент Panel и затем - MediaPlayer. Такой порядок создания формы позволяет установить значение свойства Display путем выбора из списка.

Следует особо обратить внимание на то, что размер области вывода анимации на панели определяется не значениями свойств width и Height панели (хотя их значения должны быть как минимум такими же, как ширина и высота анимации). Размер области определяется значением свойства.

DisplayRect компонента MediaPlayer. Свойство DisplayRect ВО время разработки программы недоступно (его значение не выводится в окне Object Inspector). Поэтому значение свойства DisplayRect устанавливается во время работы программы в результате выполнения инструкции:

MediaPlayer1.DisplayReet:=Rect(0,0,60,60)

Текст программы приведен ниже:

uses
Windows, Messages, SysUtils,
Classes, Graphics, Controls, 
Forms, Dialogs, MPlayer, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel; // информационное сообщение
Panel1: TPanel; // панель, на которую выводится анимация
Button1: TButton; // кнопка OK
MediaPlayer1: TMediaPlayer; // универсальный проигрыватель
procedure ButtonlClick(Sender: TObject);
procedure FormCreate(Sender: TObject); 
private
{ Private declarations ) public
{ Public declarations } end;
var
Form1: TForm1 ;
implementation
($R *.DFM}
procedure TForm1.ButtonlClick(Sender: TObject);
begin
MediaPlayer1.Play; // воспроизведение анимации
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// зададим размер области вывода анимации 
// на поверхности формы
MediaPlayer1.DisplayRect:=Rect(0,0,60,60);
end;
end.

Процесс воспроизведения анимации активизируется применением метода Play, что эквивалентно нажатию кнопки Play в случае, если кнопки компонента MediaPlayer доступны пользователю.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
22 января 2006, 16:54:29
на самом деле этот компонент может очень мало, в добавок ко всему очень часто при воспроизведении, звук отстает от картинки, а иногда и само воспроизведение тормозит...
я уже не говорю о том, что работает только с несколькими кодеками...

более лучший способ воспроизведения видеороликов и mp3 музыки- использование след. модуля (к сожалению на помню ни автора, ни его сайта :( ), однако и у него не все так хорошо - бальшое минус в том, что он не чистит за собой ресурсы :(
mp3.h:
// MP3.h

#ifndef MP3_H
#define MP3_H


#include <windows.h>
#include <mmsystem.h>
#include <amstream.h>
#include <control.h>
#include <uuids.h>


class Mp3
{
private:
IBaseFilter * pif;
IGraphBuilder * pigb;
IMediaControl * pimc;
IMediaEventEx * pimex;

bool ready;

public:
Mp3();
~Mp3();

void Load(LPSTR filename);
void Cleanup();

void Play();
void Pause();
void Stop();
};

#endif
/////////////////////////
// MP3.cpp

#include "Mp3.h"

Mp3::Mp3()
{
pif = NULL;
pigb = NULL;
pimc = NULL;
pimex = NULL;

ready = false;

CoInitialize(NULL);
}

Mp3::~Mp3()
{
CoUninitialize();
if (pimc) pimc->Stop();
if(pif)
{
pif->Release();
pif = NULL;
}
if(pigb)
{
pigb->Release();
pigb = NULL;
}
if(pimc)
{
pimc->Release();
pimc = NULL;
}
if(pimex)
{
pimex->Release();
pimex = NULL;
}
}

void Mp3::Load(LPSTR szFile)
{
WCHAR wFile[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, szFile, -1, wFile, MAX_PATH);
if (SUCCEEDED(CoCreateInstance( CLSID_FilterGraph,
NULL,
CLSCTX_INPROC_SERVER,
IID_IGraphBuilder,
(void **)&this->pigb)))
{
pigb->QueryInterface(IID_IMediaControl, (void **)&pimc);
// pigb->QueryInterface(IID_IMediaEventEx, (void **)&pimex);
if (SUCCEEDED(pigb->RenderFile(wFile, NULL))) ready = true;
}
}

void Mp3::Play()
{
if (ready)
{
pimc->Run();
}
}

void Mp3::Pause()
{
if (ready)
{
pimc->Pause();
}
}

void Mp3::Stop()
{
if (ready)
{
try{pimc->Stop();}catch(...){}
}
}
void Mp3::Cleanup()
{
if (pimc) pimc->Stop();

// Release all remaining pointers


delete pimex;
delete pif;
delete pimc;
delete pigb;

// Clean up COM
CoUninitialize();
return;
};
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог