Difference between revisions of "Multimedia Programming/ru"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{Multimedia Programming}} =Воспроизведение видео= ==Запуск видеопроигрывателя== Для запуска внешнего прои...")
 
m (Fixed syntax highlighting; removed categories included in template)
 
(3 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
Для запуска внешнего проигрывателя удобно воспользоваться классом TProcessUTF8. Нижеприведенный код запускает проигрыватель из папки PathToPlayer и передаёт ему в качестве параметра командной строки расположение проигрываемого видео файла:
 
Для запуска внешнего проигрывателя удобно воспользоваться классом TProcessUTF8. Нижеприведенный код запускает проигрыватель из папки PathToPlayer и передаёт ему в качестве параметра командной строки расположение проигрываемого видео файла:
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
uses  
 
uses  
 
   Classes, ..., LCLProc, UTF8Process;
 
   Classes, ..., LCLProc, UTF8Process;
Line 30: Line 30:
 
Следующий пример демонстрирует, как запустить и воспроизвести видео в проигрывателе mplayer из под Linux:
 
Следующий пример демонстрирует, как запустить и воспроизвести видео в проигрывателе mplayer из под Linux:
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
uses  
 
uses  
 
   Classes, ..., FileUtil, LCLProc, UTF8Process;
 
   Classes, ..., FileUtil, LCLProc, UTF8Process;
Line 57: Line 57:
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
==VFW - Video для Windows==
 +
 +
Захват и воспроизведение видео потоков от TV карты или веб-камеры при работе в ОС Windows ([[Glossary#VFW|VFW]] [[Glossary#API|API]]), можно задействовать, используя [[SysRec]].
 +
 +
==MPlayer для Linux gtk2/X==
 +
 +
'''mplayer''' - это проигрыватель с открытым исходным кодом. С помощью компонента mplayer для Lazarus, вы сможете написать собственный видеопроигрыватель на его основе. Скачать его можно здесь:
 +
<pre>
 +
svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/mplayer mplayer
 +
</pre>
 +
 +
=Воспроизведение звуков=
 +
 +
==Только для Windows: использование Windows API==
 +
 +
Вы можете использовать Windows API для воспроизведения wav файлов:
 +
 +
<syntaxhighlight lang=pascal>
 +
...
 +
uses MMSystem;
 +
...
 +
sndPlaySound('C:\sounds\test.wav', snd_Async or snd_NoDefault);
 +
</syntaxhighlight>
 +
Данный код вызовет ошибку, если в пути поиска к файлу будут содержаться не латинские буквы. Поэтому более правильно производить конвертацию строки с путём поиска в системную кодировку, как в данном примере: <syntaxhighlight lang=pascal> sndPlaySound(pchar(UTF8ToSys('C:\sounds\test.wav')), snd_Async or snd_NoDefault);</syntaxhighlight>
 +
Помните, это не кросс-платформенный код!
 +
 +
==Сторонние библиотеки для работы со звуком==
 +
 +
Ниже приведён небольшой список библиотек, каторые могут быть использованы в Lazarus:
 +
 +
*[[ACS|Audio Component Suite]]
 +
*http://www.noeska.com/doal/tutorials.aspx - Open AL
 +
*http://sourceforge.net/projects/audorra/ - Audorra Library
 +
*http://sourceforge.net/projects/omega-engine/files/ - OMEGA Engine. Проект мертв, но очень прост в использовании:
 +
<syntaxhighlight lang=pascal>
 +
Media_Play('Music.mp3', TRUE);
 +
</syntaxhighlight>
 +
*http://www.afterwarp.net/resources/soundlib - Squall sound
 +
 +
=Смотрите так же=
 +
*[[Audio libraries|Аудио библиотеки]]

Latest revision as of 01:22, 21 February 2020

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);

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