Multimedia Programming/ja

From Free Pascal wiki
Jump to navigationJump to search

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

日本語版メニュー
メインページ - Lazarus Documentation日本語版 - 翻訳ノート - 日本語障害情報

動画の再生

再生用アプリケーションを起動させる

コマンドラインとパラメータを知っていれば、以下のように TProcessUTF8 を使って再生用アプリを起動させられます。

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;

こちらは Linux 上で起動させる具体例です。動画再生アプリ mplayer を使用します。

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');
  PlayerParams:='"'+Filename+'"';
  Player:=TProcessUTF8.Create(nil);
  try
    Player.CommandLine:=PlayerPath+' '+PlayerParams;
    Player.Execute;
  finally
    Player.Free;
  end;
end;

VFW - Video for Windows

Windows 上で TV チューナーカードやウェブカメラから動画の取り込みや再生といったことを VFW API を用いて行っているアプリケーション SysRec があります。

MPlayer(Linux gtk2/X 用)

mplayer はオープンソースでフリーな動画プレイヤーです。この mplayer を埋め込んだ LCL コントロールがあります。これを使えば、動画プレイヤーを構築してアプリケーションで動画を再生させることができます。以下よりダウンロードできます。

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

音声の再生

Windows 限定:Windows API を使用する

wav ファイルなどであれば以下のように Windows API を使って再生できます。

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

パスやファイル名に非 ASCII 文字が含まれていても正常に動作させるには以下のようにします。

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


当然ながら、これはクロスプラットフォームではありません。

オーディオコンポーネントスィートを使用する

オーディオコンポーネントスィートに関するページをお読みください。

OpenAL ライブラリを使用する

Delphi 用のチュートリアルでしたら、こちら [1] にあります。

Free Pascal では fpc/packages/openal に置いてある OpenAL アクセス用ユニットを使用します。また、使い方のサンプルは fpc/packages/openal/examples にあります。

BASS

BASS ライブラリは http://www.un4seen.com/ および http://www.un4seen.com/forum/?topic=8682.0 よりダウンロードできます。

Bass ライブラリを使って Lazarus で書かれた Windows、Linux、Mac OSX 用 DJ アプリケーションがあります。 https://sites.google.com/site/fiensprototyping/

Audiere ライブラリ

Delphi 用にバインディングされたものです。以下のものがありますが、FPC では動作しません。

Audorra ライブラリ

Lazarus で問題なく動作します。

http://sourceforge.net/projects/audorra/

OMEGA Engine

OMEGA Engine はわずか 50kb の Omega.dll ファイル 1 つで動作するゲームエンジンです。FLAC、OGG、MP3、MP2、AMR、WMA ファイルの再生が可能です。システムにインストールされている音声コーデックを検出して使用します。

http://sourceforge.net/projects/omega-engine/files/

このプロジェクトは現在活動していませんが、とても簡単に使えるライブラリです。

Media_Play('Music.mp3', TRUE);

PortAudio

PortAudio はさまざまな言語にバインディングされている、クロスプラットフォームでオープンソースな録音・再生ライブラリです。このライブラリはサウンドデバイスにアクセスするためのものなので、ファイルの読み込み部分等は作成する必要があるでしょう。

フォーラムユーザの FredvS 氏が PortAudio ライブラリを動的読み込みできる Pascal ユニット [2] を書いています。(訳注:静的読み込み用のヘッダユニットは PortAudio の Links ページより入手できます。)

SDL + SDL_mixer

基本となる SDL ライブラリにあるサウンドシステムは、とても簡素なものです。一般には、より扱いやすい多くのサウンド API が実装されている SDL mixer を併せて使用します。

SDL ライブラリアクセス用ユニットは fpc/packages/sdl に置いてあります。

FMOD

ソースは公開されていません。非商用ソフトウェアにはフリーで使うことができますが、商用ソフトウェアではライセンス料金を払う必要があります。

Squall sound

Squall sound は FPC で正常に動作しません。また、立体音響と EAX の音響効果が使えますが、MP3、OGG、WAV フォーマットしかサポートしていません。

http://www.afterwarp.net/resources/soundlib

FPSound

FPSound は fpspreadsheet や fpvectorial と同様の設計思想に基づいて開発された新しいライブラリです。すなわち、サウンドファイルの読み込み、書き込み、再生するためのモジュールは各々独立していますし、編集方法も抽象化されています。詳しくは、FPSound を参照してください。

UOS (United OpenLib of Sound)

UOS は United OpenLib of Sound の略語です。UOS は複数のハイクオリティなオープンソースオーディオライブラリを使って作られています。

UOS で以下のことができます。

  • mp3、ogg、wav、flac などの音声ファイルを再生できます。
  • データは 16、32 ビット、浮動小数 32 ビットで取り扱えます。
  • 再生できるすべてのオーディオ形式で保存できます。
  • 簡単なデジタル信号処理(音量、フィルタ処理)が行えます。
  • 入出力をマルチチャンネルで行えます。

UOS はオーディオライブラリに PortAudio、SndFile、mpg123 を使用しています。

パッケージには以下のものが含まれています。

  • 使い方のサンプル
  • Linux 32/64、Windows 32/64、Mac OSX 32 用のバイナリライブラリ

http://sites.google.com/site/fiensprototyping/U_OS_Test.tar.gz

http://github.com/fredvs/uos/

関連項目