Sign in Join
Wiki copytemporary

Multimedia Programming/ja: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Multimedia Programming/ja

OldNewLine
1+# 動画の再生
2+
3+## 再生用アプリケーションを起動させる
4+
5+コマンドラインとパラメータを知っていれば、以下のように TProcessUTF8 を使って再生用アプリを起動させられます。
6+
7+``` pascal
8+uses
9+ Classes, ..., LCLProc, UTF8Process;
10+
11+...
12+
13+implementation
14+
15+procedure TMainForm.Button1Click(Sender: TObject);
16+var
17+ Player: TProcessUTF8;
18+begin
19+ Player:=TProcessUTF8.Create(nil);
20+ try
21+ Player.CommandLine:=PathToPlayer+' '+ParametersAndMediaFile;
22+ Player.Execute;
23+ finally
24+ Player.Free;
25+ end;
26+end;
27+```
28+
29+こちらは Linux 上で起動させる具体例です。動画再生アプリ mplayer を使用します。
30+
31+``` pascal
32+uses
33+ Classes, ..., FileUtil, LCLProc, UTF8Process;
34+
35+...
36+
37+implementation
38+
39+procedure TMainForm.Button1Click(Sender: TObject);
40+var
41+ Player: TProcessUTF8;
42+ Filename: String;
43+ PlayerPath: String;
44+ PlayerParams: String;
45+begin
46+ Filename:='/home/username/video.mpg';
47+ PlayerPath:=FindDefaultExecutablePath('mplayer');
48+ PlayerParams:='"'+Filename+'"';
49+ Player:=TProcessUTF8.Create(nil);
50+ try
51+ Player.CommandLine:=PlayerPath+' '+PlayerParams;
52+ Player.Execute;
53+ finally
54+ Player.Free;
55+ end;
56+end;
57+```
58+
59+## VFW - Video for Windows
60+
61+Windows 上で TV チューナーカードやウェブカメラから動画の取り込みや再生といったことを [[Glossary|VFW]] [[Glossary|API]] を用いて行っているアプリケーション [[SysRec]] があります。
62+
63+## MPlayer(Linux gtk2/X 用)
64+
65+**mplayer** はオープンソースでフリーな動画プレイヤーです。この mplayer を埋め込んだ LCL コントロールがあります。これを使えば、動画プレイヤーを構築してアプリケーションで動画を再生させることができます。以下よりダウンロードできます。
66+
67+ svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/mplayer mplayer
68+
69+# 音声の再生
70+
71+## Windows 限定:Windows API を使用する
72+
73+wav ファイルなどであれば以下のように Windows API を使って再生できます。
74+
75+``` pascal
76+...
77+uses MMSystem;
78+...
79+sndPlaySound('C:\sounds\test.wav', snd_Async or snd_NoDefault);
80+```
81+
82+パスやファイル名に非 ASCII 文字が含まれていても正常に動作させるには以下のようにします。
83+
84+``` pascal
85+sndPlaySound(pchar(UTF8ToSys('C:\sounds\test.wav')), snd_Async or snd_NoDefault);
86+```
87+
88+当然ながら、これはクロスプラットフォームではありません。
89+
90+## オーディオコンポーネントスィートを使用する
91+
92+[[ACS/ja|オーディオコンポーネントスィートに]]関するページをお読みください。
93+
94+## OpenAL ライブラリを使用する
95+
96+Delphi 用のチュートリアルでしたら、こちら [1](http://www.noeska.com/doal/tutorials.aspx) にあります。
97+
98+Free Pascal では fpc/packages/openal に置いてある OpenAL アクセス用ユニットを使用します。また、使い方のサンプルは [fpc/packages/openal/examples](http://svn.freepascal.org/svn/fpc/trunk/packages/openal/examples) にあります。
99+
100+## BASS
101+
102+BASS ライブラリは <http://www.un4seen.com/> および <http://www.un4seen.com/forum/?topic=8682.0> よりダウンロードできます。
103+
104+Bass ライブラリを使って Lazarus で書かれた Windows、Linux、Mac OSX 用 DJ アプリケーションがあります。 <https://sites.google.com/site/fiensprototyping/>
105+
106+## Audiere ライブラリ
107+
108+Delphi 用にバインディングされたものです。以下のものがありますが、FPC では動作しません。
109+
110+- <http://www.casteng.com/whypascal.shtml>
111+- <http://www.afterwarp.net/resources/soundlib>
112+- <http://code.google.com/p/audiere-bind-delphi/>
113+
114+## Audorra ライブラリ
115+
116+Lazarus で問題なく動作します。
117+
118+<http://sourceforge.net/projects/audorra/>
119+
120+## OMEGA Engine
121+
122+OMEGA Engine はわずか 50kb の Omega.dll ファイル 1 つで動作するゲームエンジンです。FLAC、OGG、MP3、MP2、AMR、WMA ファイルの再生が可能です。システムにインストールされている音声コーデックを検出して使用します。
123+
124+<http://sourceforge.net/projects/omega-engine/files/>
125+
126+このプロジェクトは現在活動していませんが、とても簡単に使えるライブラリです。
127+
128+``` pascal
129+Media_Play('Music.mp3', TRUE);
130+```
131+
132+## PortAudio
133+
134+[PortAudio](http://www.portaudio.com/) はさまざまな言語にバインディングされている、クロスプラットフォームでオープンソースな録音・再生ライブラリです。このライブラリはサウンドデバイスにアクセスするためのものなので、ファイルの読み込み部分等は作成する必要があるでしょう。
135+
136+フォーラムユーザの FredvS 氏が PortAudio ライブラリを動的読み込みできる Pascal ユニット [2](http://lazarus.freepascal.org/index.php/topic,17521.0.html) を書いています。(訳注:静的読み込み用のヘッダユニットは PortAudio の Links ページより入手できます。)
137+
138+## SDL + SDL_mixer
139+
140+基本となる SDL ライブラリにあるサウンドシステムは、とても簡素なものです。一般には、より扱いやすい多くのサウンド API が実装されている SDL mixer を併せて使用します。
141+
142+SDL ライブラリアクセス用ユニットは fpc/packages/sdl に置いてあります。
143+
144+## FMOD
145+
146+ソースは公開されていません。非商用ソフトウェアにはフリーで使うことができますが、商用ソフトウェアではライセンス料金を払う必要があります。
147+
148+## Squall sound
149+
150+Squall sound は FPC で正常に動作しません。また、立体音響と EAX の音響効果が使えますが、MP3、OGG、WAV フォーマットしかサポートしていません。
151+
152+<http://www.afterwarp.net/resources/soundlib>
153+
154+## FPSound
155+
156+FPSound は fpspreadsheet や fpvectorial と同様の設計思想に基づいて開発された新しいライブラリです。すなわち、サウンドファイルの読み込み、書き込み、再生するためのモジュールは各々独立していますし、編集方法も抽象化されています。詳しくは、[[FPSound]] を参照してください。
157+
158+## UOS (United OpenLib of Sound)
159+
160+UOS は United OpenLib of Sound の略語です。UOS は複数のハイクオリティなオープンソースオーディオライブラリを使って作られています。
161+
162+UOS で以下のことができます。
163+
164+- mp3、ogg、wav、flac などの音声ファイルを再生できます。
165+- データは 16、32 ビット、浮動小数 32 ビットで取り扱えます。
166+- 再生できるすべてのオーディオ形式で保存できます。
167+- 簡単なデジタル信号処理(音量、フィルタ処理)が行えます。
168+- 入出力をマルチチャンネルで行えます。
169+
170+UOS はオーディオライブラリに PortAudio、SndFile、mpg123 を使用しています。
171+
172+パッケージには以下のものが含まれています。
173+
174+- 使い方のサンプル
175+- Linux 32/64、Windows 32/64、Mac OSX 32 用のバイナリライブラリ
176+
177+<http://sites.google.com/site/fiensprototyping/U_OS_Test.tar.gz>
178+
179+<http://github.com/fredvs/uos/>
180+
181+# 関連項目
182+
183+- [[Audio libraries|オーディオライブラリ]]
184+
185+---
186+*From the Free Pascal wiki, page "Multimedia Programming/ja", as it stood on 2020-02-20 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history