Multimedia Programming/ru

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆) (zh_CN)

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

Запуск видеопроигрывателя

Для запуска внешнего проигрывателя удобно воспользоваться классом TProcessUTF8. Нижеприведенный код запускает проигрыватель из папки PathToPlayer и передаёт ему в качестве параметра командной строки расположение проигрываемого видео файла:

uses 
  Classes, ..., LCLProc, UTF8Process;

...

implementation

procedure TMainForm.Button1Click(Sender: TObject);
var
  Player: TProcessUTF8;
begin
  Player:=TProcessUTF8.Create(nil);
  try
    Player.CommandLine:=PathToPlayer+' '+ParametersAndMediaFile;
    Player.Execute;
  finally
    Player.Free;
  end;
end;

Следующий пример демонстрирует, как запустить и воспроизвести видео в проигрывателе mplayer из под Linux:

uses 
  Classes, ..., FileUtil, LCLProc, UTF8Process;

...

implementation

procedure TMainForm.Button1Click(Sender: TObject);
var
  Player: TProcessUTF8;
  Filename: String;
  PlayerPath: String;
  PlayerParams: String;
begin
  Filename:='/home/username/video.mpg';//путь к нужному видео файлу
  PlayerPath:=FindDefaultExecutablePath('mplayer');//ищем расположение в системе программы mplayer
  PlayerParams:='"'+Filename+'"';//задаём в качестве параметра командной строки путь к файлу
  Player:=TProcessUTF8.Create(nil);
  try
    Player.CommandLine:=PlayerPath+' '+PlayerParams;//формируем командную строку
    Player.Execute;//запускаем программу
  finally
    Player.Free;
  end;
end;

VFW - Video для Windows

Захват и воспроизведение видео потоков от TV карты или веб-камеры при работе в ОС Windows (VFW API), можно задействовать, используя SysRec.

MPlayer для Linux gtk2/X

mplayer - это проигрыватель с открытым исходным кодом. С помощью компонента mplayer для Lazarus, вы сможете написать собственный видеопроигрыватель на его основе. Скачать его можно здесь:

svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/mplayer mplayer

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

Только для Windows: использование Windows API

Вы можете использовать Windows API для воспроизведения wav файлов:

...
uses MMSystem;
...
sndPlaySound('C:\sounds\test.wav', snd_Async or snd_NoDefault);

Данный код вызовет ошибку, если в пути поиска к файлу будут содержаться не латинские буквы. Поэтому более правильно производить конвертацию строки с путём поиска в системную кодировку, как в данном примере:

 sndPlaySound(pchar(UTF8ToSys('C:\sounds\test.wav')), snd_Async or snd_NoDefault);

Помните, это не кросс-платформенный код!

Сторонние библиотеки для работы со звуком

Ниже приведён небольшой список библиотек, каторые могут быть использованы в Lazarus:

Media_Play('Music.mp3', TRUE);

Смотрите так же