電子書籍の厳選無料作品が豊富!

C++でプログラミング中の者です。
使っているコンポーネントはanimate、MediaPlayer、Edit、Botton、OpenDialogです。
OpenDialogで選択したファイル名をEditに表示させ、Mediaplayerを使ってAnimateに表示させるプログラミングをしたいと思っています。
なかなかうまくいかないので、アドバイスお願いいたします。

次のは現在のプログラムです。


#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//OpenDialog1->DefaultExt = "AVI";
//OpenDialog1->FileName = "*.avi";

if(OpenDialog1->Execute()==true){ // ファイル名が選択されたときに実行する処理 
Edit1->Text=OpenDialog1->FileName; //Edit1に選択したファイル名を表示

//Animate1->Active=LoadFromFile(OpenDialog1->FileName);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Change(TObject *Sender)
{
MediaPlayer1->Open();
MediaPlayer1->Play();
}
//----------------------------------

よろしくお願いします。

A 回答 (1件)

C++Builer5 しか手元にないので、違うかもしれません。



TAnimate を使う必用はないと思います。
TMediaPlayer の Display プロパティに入れるものは、なんらかのウィンドウなので、TPanel あたりを貼り付けて使用したらいいんじゃないでしょうか。

Edit1 は、ファイル名を表示させるだけにして、

if(OpenDialog1->Execute()==true){
Edit1->Text=OpenDialog1->FileName;
MediaPlayer1->FileName = OpenDialog1->FileName;
MediaPlayer1->Open();
}

として再生ボタンを押せば、一応再生されると思います。
ちょっと試した感じでは、指定したサイズで再生することができませんでしたが、何か方法があるか、もしくは無いのかわかりません。

少し話がかわりますが、C++Builder5 だと、DirectShow のオーバーレイ表示に対応していないので、負荷が高くなって再生時にコマ落ち、音飛びなどが発生していました。C++Builder6 で対応されているならばいいのですが・・・
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!!
今朝から早速実行してみました・・・
しかし、何がおかしいのか、変化がみられませんでした・・・(;;)
Edit1にファイル名が表示された後、そこからビデオが再生できません。
どうしてでしょうか・・・
オーバーレイに関してですが、そちらのプログラムのほうも現在平行して作成しています。
CapOverlayのコードを書いてるのですが、ストリーム再生できないのですが、これもまた問題なのです・・・

お礼日時:2002/10/02 10:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!