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
| Old | New | Line | |
|---|---|---|---|
| 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).* |
