|
2006/6/16(Fri) 20:09:16|NO.1126
Dripです。
まうりさん、こんにちは。mmplayとmciの違いについてですが、mmplayはmciのやっていることを
自動化してくれるような命令で、結局のところmciを使用して再生しています。
mmplayで再生されるところを自分でmciを使って書いても全然問題ありませんが、
よく使う効果音の再生やMIDIの再生などを、一々長いmciのスクリプトを書くのは大変面倒です。
そのためよく使うmciの機能の一部を自動化してくれた、mmplay,mmstopなどが用意されています。
> また、DirectShow,DirectSound,DirectMusic は同じAPIなのに、
> MCIと分けられているのはなんでなのですか?
DirectShow,DirectSound,DirectMusicとMCIは全然違うものだからです。
DirectXのインストールされていない環境で、DirectSoundは使用できませんが、
MCIはWindowsベースで実行される、単純なサウンドシステムです。
> 音楽再生にはDirectXを使うのが一番いい(勝手な想像で)と思うんですが、
> それが標準命令にされていないのは、なんでなのですか?
勝手な想像はやめましょう。
音楽再生にはDirectXを使うのが一番いいという考えは、完全に間違っています。
DirectSoundを使用することは、高度なゲームプログラムやDVDビデオ再生ソフト等、
高度なサウンドの高速な処理が必須となる目的以外で使用することは、全く好ましくありません。
通常のサウンド再生と比べCPUもかなり消費しますし、その他のDirectXを使用するソフトと
同時に起動させた場合、予期せぬ不具合が発生する事もある上、通常のサウンド再生と比べると
不安定で使用にも手間がかかります。
> Win側に頼れば、ソースも減るし、動作も軽くなる感じがしますが・・・
これも完全に間違っています。
まず、DirectXはWindowsに頼らないシステムです。ハードウェアに直接処理を投げるため、
処理が高速なのです。
なのでDirectSoundに対応していないハードウェアを使用するマシンでは、
DirectSoundは全く再生されません。もしくはエラーします。
また、HSPが標準命令でDirectXに対応してしまうと9割以上のユーザーから
反感の声が上がるでしょう。なぜなら、HSPの実行ファイル(EXEファイル)は、
自分のソースを実行するためのランタイムも含んでいるため、DirectXのシステムを
使わないプログラムにもDirectXのシステムを乗せることになってしまいます。
実行ファイルのサイズも無駄にデカくなり、ろくなことがありません。
・・・それにしてもなぜhspdxやhgimg3はDirectSoundを搭載しないのだろう・・・。
HSP公式のDirectSoundを使用可能にするプラグインが標準で装備されていない事の方が不思議です。
| |