[BlueLeaf1336]> PROBLEMS> MediaSkipper>

TRealAudio コンポーネントってどんな?

historyTOP

2008/02/04:作成

インストールTOP

1.ActiveX コントロールの取り込み

2.Real Player ActiveX Control Library (Version 1.0) を選択して「インストール」をクリック

3.パッケージを選択。
今回はオリジナル以外のコンポーネントを突っ込む用に使っているパッケージを選択しました。

4.RealAudioObjects_TLB.pas / RealAudioObjects_TLB.dcr というのが追加されてます。
「コンパイル」をクリック

5.うまくいったみたいです。

6.パッケージを保存して、いったんDelphiを終了して(なんとなく)、もう一回立ち上げて、ActiveX タブを見てみると、右の方にちんまりと追加されてます。

7.新規作成でフォームを表示して、ひとつおいてみました。が、移動すらできません。

8.オブジェクトツリーには表示されてます。

9.右クリックしてみるとプロパティが表示されました。

10.面白くない画面でした。

Real Player 再生してみようTOP

TRealAudio と TOpenDialog をフォームにおいて FormCreate で Source を設定して DoPlay を呼び出してテストしてみました。

procedure TForm1.FormCreate(Sender: TObject);
begin
    if (OpenDialog1.Execute()) then
    begin
        RealAudio1.Align := alClient;
        RealAudio1.Source := OpenDialog1.FileName;
        RealAudio1.DoPlay();
    end;
end;

ちゃんと再生されました。それよりなにより、手持ちの .rm ファイルはどれもこれも...

フォームをリサイズしてみましたTOP

変です。完全にフォームのサイズについてきます。しかも、コントロール部分が伸び縮みしたりして。

このままじゃルールがわからないので、TRealAudio を TPanel の上に配置して、フォームのリサイズでパネルの ClientWidth と ClientHeight を表示するようにしてみました。

何をしたいかというと。やっぱりプレイヤーというのはメディアの縦横比は守らないとだめだろうと思います。多分メディアのオリジナルの縦横サイズは取れそうな感じなので、どうにかすれば縦横比を維持できる気がします。フォームのリサイズでたとえば縦を正にして横のサイズを勝手に調整するとか。

でも、そうするにしても再生画面のサイズがわからないとどうしようもないわけですが、ちょっと試してみたところ再生画面のサイズ自体がフォームのサイズに対してフレキシブルすぎます。でも、縦が439の2つは幅が違っているにもかかわらずどちらも同じ高さなので TRealAudio 自体の縦サイズとコントロール部分の縦サイズに何か関係がありそうです。

で、TRealAudio 自体の縦サイズとコントロール部分の縦サイズを測ってみて一定の比率なら何とかなるんじゃないかなぁと思ってるわけです。いやいや、よく見てみると、再生画面のサイズの方が測りやすそう。

NOA=TRealAudioB=再生画面C=B/AD=A-BF=B(i+1)-B(i)
1100 820.820018 -
22001640.82003682
33002480.82605284
44003330.83256785

ひょっとしたらと思い、おまけでもうひとつ測ってみました。無意識がぴったりした数字を選んだのかも知れませんが、これで十分と思います。気持ちもいいし。実際、数ピクセル狂ったところで肌色ばっかりの画面なんだからどうでもいいやん、てなもんです。

A=TRealAudioB=再生画面
480400

このページおよび以降のページでは、次の比率でやっていくことにします。

長くなったのでここまで。

EOFTOP