トップページ > 記事閲覧
サウンド付きムービーの停止/再開
名前:rio 日時: 2019/12/25 12:34

久方ぶりの質問になります。 ただいまDxlibの外で作成したムービーを読み込んで プログラム内で再生、停止・再開するものを作っているのですが、 今までムービー周りの関数は殆ど使ったことがなかったため、以下のサンプルコードをベースに、 「ムービーの再生中にボタン入力があった時にムービーの再生を中断してシーンを切り替える。 さらに後でまた再生していたムービーへ戻って来て、停止した時点から再開する。」 という趣旨のコードを作っていました。 -------------------------------------------------- int MovieGraphHandle ; MovieGraphHandle = LoadGraph( "??.mpg" ) ; PlayMovieToGraph( MovieGraphHandle ) ; while( ProcessMessage() == 0 ) { DrawGraph( 0 , 0 , MovieGraphHandle , FALSE ) ; WaitTimer( 10 ) ; } -------------------------------------------------- 想定する仕様の実装はできているのですが、 今扱っているのが予め音声の付いたムービーファイル(avi)でして、 「DrawGraphで描画する」という時点で不味い予感はしたのですが、実行してみると 見事に「映像はちゃんと止まる、再開もできる」が、「ムービーの音声だけは止まらずに垂れ流し」状態に なってしまい困ったことになりました。 ムービー関連の仕組みをよく理解していないので、 DxLibのソースを眺めてみたりはしているの(この時のムービー音声のサウンドハンドルはどこに?…etc.)ですが ちょっと所用で急ぎ完成させたいプログラムなので、 代替の方法などアドバイスを戴ければと思いました。
メンテ

Page: 1 |

Re: サウンド付きムービーの停止/再開 ( No.1 )
名前:管理人 日時:2019/12/25 23:31

お久しぶりです( 記録を見ると約6年ぶりですね…! ) お急ぎという事で、もう既に遅いかもしれませんが少しだけ早めにご返答いたします 動画関連の関数は PlayMovieToGraph 以外に 4つ関数があります PauseMovieToGraph  ムービーグラフィックの動画再生を一時停止する https://dxlib.xsrv.jp/function/dxfunc_graph3.html#R14N3 SeekMovieToGraph  ムービーグラフィックの動画の再生位置を変更する https://dxlib.xsrv.jp/function/dxfunc_graph3.html#R14N4 TellMovieToGraph  ムービーグラフィックの動画の再生位置を得る https://dxlib.xsrv.jp/function/dxfunc_graph3.html#R14N6 GetMovieStateToGraph  ムービーグラフィックの動画の再生状態を得る https://dxlib.xsrv.jp/function/dxfunc_graph3.html#R14N5 ムービーの再生を一時中断されたい場合は PauseMovieToGraph を使用してください ( 中断したムービーの再生を再開する場合は PlayMovieToGraph を再度使用してください )
メンテ
Re: サウンド付きムービーの停止/再開 ( No.2 )
名前:rio(解決) 日時:2019/12/26 17:52

管理人様、どうもお久しぶりです。 GUIアプリを最近作っていなかったので、本当に久々です。 最初はムービーハンドルをDrawGraphをしなければ止まるじゃないか…と思ってましたが、 止める時にPauseMovieToGraphで明示的に止めなければいけなかったのですね。 PlayMovieToGraph以外の関数の使い道がピンと来てなかったので、納得しました。 4つの関数をシーンの切り替え前後で組み込んでみたら、 しっかり音も止まってくれる、再開時に音声も停止時点から再開するようになりました。 週末までに間に合えばよいので、(返信が来る時間は夜中だろうと予測して投稿しました…) 何とか目的の実装に辿り着きそうです。 どうもありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存