動画ファイルの再生したら、途中で、キーを押したら、終了させたいです。
Posted: 2010年11月14日(日) 07:33
どうも、はじめまして。KLM06です。
タイトルどおりのプログラムを作成しましたが、とまってしまい終了しません。
どこを修正・追加したら、いいでしょうか?
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int MovieGraphHandle ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// ムービーファイルをロードします。
MovieGraphHandle = LoadGraph( "sample.mpg" ) ;
// ムービーを再生状態にします
PlayMovieToGraph( MovieGraphHandle ) ;
// 描画先の画面を裏画面に
SetDrawScreen( DX_SCREEN_BACK ) ;
// ループ、GetMovieStateToGraph 関数はムービーの再生状態を得る関数です
// 戻り値が1の間は再生状態ですのでループを続けます
while( ProcessMessage() == 0 && GetMovieStateToGraph( MovieGraphHandle ) == 1 && CheckHitKeyAll()==0 )
{
// ムービー映像を画面いっぱいに描画します
DrawExtendGraph( 0 , 0 , 640 , 480 , MovieGraphHandle , FALSE ) ;
// 画面左上に再生時間を描画します
// DrawFormatString( 0, 0, GetColor( 255,255,255 ), "Time:%d", TellMovieToGraph( MovieGraphHandle ) ) ;
//------------------------------
if (ProcessMessage()==-1) break;
//-------------------------------
// 裏画面の内容を表画面に反映します
ScreenFlip() ;
}
WaitKey();
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
タイトルどおりのプログラムを作成しましたが、とまってしまい終了しません。
どこを修正・追加したら、いいでしょうか?
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int MovieGraphHandle ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// ムービーファイルをロードします。
MovieGraphHandle = LoadGraph( "sample.mpg" ) ;
// ムービーを再生状態にします
PlayMovieToGraph( MovieGraphHandle ) ;
// 描画先の画面を裏画面に
SetDrawScreen( DX_SCREEN_BACK ) ;
// ループ、GetMovieStateToGraph 関数はムービーの再生状態を得る関数です
// 戻り値が1の間は再生状態ですのでループを続けます
while( ProcessMessage() == 0 && GetMovieStateToGraph( MovieGraphHandle ) == 1 && CheckHitKeyAll()==0 )
{
// ムービー映像を画面いっぱいに描画します
DrawExtendGraph( 0 , 0 , 640 , 480 , MovieGraphHandle , FALSE ) ;
// 画面左上に再生時間を描画します
// DrawFormatString( 0, 0, GetColor( 255,255,255 ), "Time:%d", TellMovieToGraph( MovieGraphHandle ) ) ;
//------------------------------
if (ProcessMessage()==-1) break;
//-------------------------------
// 裏画面の内容を表画面に反映します
ScreenFlip() ;
}
WaitKey();
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}