ページ 1 / 1
動画再生時の総再生時間取得について
Posted: 2010年11月12日(金) 22:11
by パンダ太郎
使用ソフト:Microsoft Visual C++ 2010 Express
使用ライブラリ:DXライブラリ
DXライブラリを用いて動画再生を行うプログラムを作っています。
TellMovieToGraphを使用し、再生位置を表示することは出来ましたが、
動画ファイルの長さ(総再生時間)の取得する方法はありますでしょうか?
ご教授のほど、よろしくお願いします。
Re:動画再生時の総再生時間取得について
Posted: 2010年11月12日(金) 23:58
by Dixq (管理人)
> パンダ太郎さん
こんにちは。
DXライブラリの公開関数には無いようなのでヘッダを見てみました。
extern int GetMovieTotalFrameToGraph( int GraphHandle ) ; // ムービーの総フレーム数を得る( Ogg Theora でのみ有効 )
extern LONGLONG GetOneFrameTimeMovieToGraph( int GraphHandle ); // ムービーの1フレームあたりの時間を得る
この2つで計算出来ないでしょうか。
ただ、動画時間に関する情報は大抵の動画のヘッダについていますから、自分で取得する手もあるかと思います。
例えばaviファイルであれば
http://www.elf.info.gifu-u.ac.jp/terada ... 3/avi.html
AVIメインヘッダーの
DWORD dwMicroSecPerFrame; //フレーム間の間隔をマイクロ秒単位で指定する。
・・・
DWORD dwTotalFrames; //ファイル内のデータのフレームの総数を指定する。
で上記と同じ事が解るのではないかと思います。
Re:動画再生時の総再生時間取得について
Posted: 2010年11月13日(土) 01:00
by パンダ太郎
>Dixq (管理人)さん
こんばんは、早速のご回答ありがとうございます。
>extern LONGLONG GetOneFrameTimeMovieToGraph( int GraphHandle ); // ムービーの1フレームあたりの時間を得る
これを利用しまして動作を行うことが出来ました。
ありがとうございます。
>ただ、動画時間に関する情報は大抵の動画のヘッダについていますから、自分で取得する手もあるかと思います。
ヘッダー情報については、まだまだ知らないことが多いので、がんばりたいと思います。
ありがとうございました!
また壁にぶつかったときはよろしくお願いします。