トップページ > 過去ログ > 記事閲覧
PlayMovieToGraphについて
名前:がまぐち 日時: 2008/09/29 11:41

PlayMovieToGraph関数を使用して動画を再生しているのですが、分からないことがあったので教えてください。 1つ目は、動画を再生中にウィンドウのタイトルバーをドラッグすると、動画の再生がドラッグしている間止まってしまうことです。再生を止めないようにするにはどうすればいいのか。 2つ目は、1つ目と似ているのですが、動画の再生中にウィンドウを最小化すると再生が止まってしまうということです。止めないようにするにはどうすればいいのか。 お分かりになる方はよろしくお願いします。

Page: 1 |

Re: PlayMovieToGraphについて ( No.1 )
名前:ライブラリ使用者 日時:2008/09/29 22:50

2つ目に関しては、SetAlwaysRunFlag(TRUE)で大丈夫だと思います。 1つ目は不明。できるのかな?
Re: PlayMovieToGraphについて ( No.2 )
名前:がまぐち 日時:2008/09/30 00:37

ライブラリ使用者様、回答ありがとうございます。 SetAlwaysRunFlagを使用してみたのですが、 なぜだかできませんでしたヽ(TдT)ノ #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE); int MovieGraphHandle ; if( DxLib_Init() == -1 ) return -1; SetAlwaysRunFlag(TRUE); MovieGraphHandle = LoadGraph( "test.mpg" ) ; PlayMovieToGraph( MovieGraphHandle ) ; while( ProcessMessage() == 0 ) { DrawGraph( 0,0,MovieGraphHandle,1 ) ; WaitTimer( 17 ) ; } DxLib_End() ; return 0 ; } こんな感じのプログラムなのですが、どうすればいいのでしょうか?
Re: PlayMovieToGraphについて ( No.3 )
名前:管理人 日時:2008/10/14 04:13

現状では 2 に関してはライブラリ使用者さんの仰られている通り SetAlwaysRunFlag( TRUE ); で解決できますが、1 に関しては 現状では解決策はありません。 対応策は無いわけではありませんが、ちょっとライブラリの構造が 複雑になってしまうのでなるべくなら控えたいところです・・・ がまぐちさんがお作りになっているソフトが、タイトルバーの ドラッグ中に動画がストップしてしまうと、ソフトが提供する機能に 致命的な欠陥をもたらしてしまう、という程でしたら対処します。m(_ _;m
Re: PlayMovieToGraphについて ( No.4 )
名前:がまぐち 日時:2008/10/15 22:19

管理人様、回答ありがとうございます。 >動画がストップしてしまうと、ソフトが提供する機能に致命的な欠陥をもたらしてしまう いや、そんなことはありません。(^^;; ただ、WindowsMediaPlayerなどの動画再生ソフトでは再生がストップしないので、どうやるのかな? という感じでした。
Re: PlayMovieToGraphについて ( No.5 )
名前:管理人 日時:2008/10/25 17:14

そういうことでしたか Windows Media Player のように止まらないようにするには WinMain 関数から始まるスレッドではメッセージ処理だけを実行して、 描画処理等はそれ以外のスレッドで実行する必要があります。 DXライブラリでは ProcessMessage がメッセージ処理になるのですが、 現在DXライブラリでは全スレッドで同時に一つしかDXライブラリの 関数が呼べないようになっている上、仮に同時に複数のスレッドから DXライブラリの関数を呼べるようにした場合はマルチスレッド特有の 問題を解決しなければならないので( ProcessMessage 関数でキー入力の 情報を更新している間は CheckHitKey を他のスレッドから呼べないようにする、 若しくは呼んでも問題が起きないようにする等 ) ちょっと気軽に対応 することはできない状態です。m(_ _;m

Page: 1 |