procedure Close;
ファイルを閉じます。
mstOwn なストリームを開いていた時は、そのストリームを解放します。
procedure Open;
FileName プロパティで指定したファイルを MPEG Audio ファイルとしてオープンします。
AutoPlay プロパティが True だと、ファイルオープン後、Play メソッドを呼び出します。
procedure OpenStream(Stream: TStream; StreamType: TMP3StreamType);
TMP3StreamType = set of (mstSeekable, mstOwn);
Stream で指定したストリームを MPEG Audio ファイルとしてオープンします。StreamType で Stream の特性を指定します。
- mstSeekable
- Stream.Seek メソッドが有効かどうか
- mstOwn
- TMP3Player が Stream のオーナーになるかどうか
一般に、TStream から派生したほとんどのクラス(TFileStream や TMemoryStream など)は TStream.Seek メソッドが有効なので、通常は mstSeekable を指定してください。
一部、TStream.Seek メソッドが使えなかったり、特定の条件でしかできないクラスもあります。例えば、ScktComp ユニットの TWinSocketStream クラスや、zlib ユニットの TDecompressionStream クラスなどです。これらのクラスを使う場合は mstSeekable を指定しないでください。
mstOwn は、Stream を使わなくなった後の解放を TMP3Player がするかどうかを指定します。
AutoPlay プロパティが True だと、オープン後、Play メソッドを呼び出します。
何のために、こんなメソッドを用意してるかっていうと、ネット上にある MP3 ファイルの直接再生をできるようにしたかったんです。だから、TWinSocketStream をなんとか使えるようにしたいと。
副産物(?)として、TResourceStream を使って、EXE や DLL に含めてあるリソースから直接再生できたりします。
procedure Pause;
再生を一時停止します。
ファイル出力時は無効です。
procedure Play;
procedure PlayToFile(FIleName: TFileName);
ファイルに出力します。
FileName で指定したファイルに Windows WAVE 形式で出力します。
別スレッドで非同期実行されます。
class function QueryOpen(const FileName: TFileName): Boolean;
ファイルが再生可能かどうかを返します。再生中・WAVE ファイル出力中でも使用可能です。
FileName で指定したファイルが TMP3Player で再生可能なら True を返します。
厳密に判定しているわけではないので、再生不可能なファイルでも True を返すことがあります。
class procedure ReadInfo(const FileName: TFileName; Info: TMP3Info);
MP3 ファイルの情報を取得します。再生中・WAVE ファイル出力中でも使用可能です。
FileName で指定したファイルの音以外の情報を Info に取得します。
このメソッドを呼ぶ前に Info を生成しておく必要があります。
ここで曲情報を読み込んだら、ついでに再生時間もわかった方が便利っすよね。なんとかできるようにせねば。
procedure Seek(NewPosition: Integer);
MPEG Audio ファイルの現在位置を設定します。
NewPosition には、先頭からの経過時間をミリ秒単位で指定します。
以下の場合は設定できません
- mstSeekable ではないストリームからの再生時
- ファイル出力時
procedure SetEqualizerFreqs(MinFreq, MaxFreq: Integer);
イコライザーバンドそれぞれの中心周波数を等比になるように設定します。
EqualizerMode プロパティが memFreq の時のみ、機能します。
MinFreq, MaxFreq の範囲は 1..24000 で MinFreq <= MaxFreq でなくてはなりません。
EquazlierFreq[0] = MinFreq
・・・等比で増加・・・
EquazlierFreq[EqualizerCount-1] = MaxFreq
となります。
procedure Stop;
再生を終了します。
mstSeekable ではないストリームからの再生時は、再生終了後、Close メソッドを呼び出します。
procedure Unpause;