トップページ > 過去ログ > 記事閲覧
PlayMovieについて
名前:SB 日時: 2012/02/09 01:46

いつもお世話になります。 PlayMovieを使って動画を再生しようとしたところ色々とおかしな事になって困っております。 原因として考えられる事を絞り込もうとしたのですがますますおかしな事になってしまい、結局進んでません。 現状や、やってみた事を可能な限り並べてみますので 何かおかしな点や、アドバイスありましたらご教示ください。 ・プログラムは画面320*240サイズで作っている。 ・再生したい動画も320*240サイズで作っている。  形式はAVIとmp4の両方を試してみたが違いは特になかった。 1)プログラムをウィンドウモードで実行すると、動画再生は正常に行われる。   SetWindowSizeExtendRateで拡大しても問題ない。   ただし、画像が非常に汚くて使い物にならない。 2)プログラムをフルスクリーンモードで実行すると、動画の位置がずれる。   具体的には動画の左上座標が、画面の中心付近にくる。   つまり右下に画面半分くらいずれている。 3)色々ためそうと、拡大縮小やウィンドウモードフルスクリーンモードの切り替え、   SetEmulation320x240によるエミュレーションモード等をやっていると   なぜかムービーのみが別ウィンドウで開かれるようになった。   プログラムを再起動すると元に戻った。 4)状況をまとめようと、以下のサンプルプログラムを作ってみたが、   動画の再生すらされなかった。 //---------------------------------------------- #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } PlayMovie( "test.avi" , 1 , DX_MOVIEPLAYTYPE_NORMAL ) ; DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } //---------------------------------------------- ログファイルには次のとおり。 //---------------------------------------------- 0:システムの情報を出力します 1: DXライブラリ Ver3.07 1: 論理プロセッサの数 : 1 1: OS WindowsXP ( Build 2600 Service Pack 3 ) 101: CPU動作速度:大体1.80GHz 101: MMX命令を使用します 101: SSE命令が使用可能です 101: SSE2命令が使用可能です 101: CPUベンダ:AuthenticAMD 102: CPU名:AMD Athlon(tm) 64 Processor 3000+ 103:COMの初期化... 成功しました 105:メモリ総量:2047.23MB 空きメモリ領域:1444.93MB 105:タイマーの精度を検査します 105:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 106: パフォーマンスカウンターを使用します タイマー精度 : 3579.545000 KHz 106: ソフトの二重起動検査... 二重起動はされていませんでした 107:ウインドウクラスを登録します... 登録に成功しました 107:フルスクリーンモード用のウインドウを作成します 111:ウインドウの作成に成功しました 137:カーソルを不可視にしました 138:IMEを無効にしました 140:DirectInput関係初期化処理 140: DirectInput7 の取得中... 成功 152: 引き続き初期化処理... 初期化成功 157: ジョイパッドの初期化... 165: 入力装置を見つけました 167: デバイスの登録名:Rumble Pad 167: デバイスの製品登録名:Rumble Pad 168: 周期的エフェクトの作成に失敗しました。 169: ジョイパッドの追加は正常に終了しました 169: ジョイパッドの初期化は正常に終了しました 169: マウスデバイスの初期化... 初期化成功 170: キーボードデバイスの初期化... 初期化成功 170:DirectInput 関連の初期化は正常に終了しました 171:DirectSound の初期化を行います 172:DirectSound インターフェースの取得を行います.... 成功 173:引き続きインターフェースの初期化処理... 成功 239: DirectSound デバイスを列挙します 240: モジュール名: ドライバ記述:プライマリ サウンド ドライバ 240: モジュール名: ctaud2k.sys ドライバ記述:SB Live! オーディオ [9000] 240: 最大サンプリングレート:192.00KHz 最小サンプリングレート:4.00KHz 240: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 240: 利用可能サンプリング精度 241: プライマリ 16bit = OK 8bit = OK 241: セカンダリ 16bit = OK 8bit = OK 241: 利用可能チャンネル 241: プライマリ MONO = OK STEREO = OK 241: セカンダリ MONO = OK STEREO = OK 242:DirectSound の初期化は正常に終了しました 252:DirectDraw オブジェクトの取得を行います.... 成功 253:引き続き初期化処理... 初期化に成功しました 255:IDirect3D9Ex オブジェクトを取得します.... IDirect3D9 オブジェクトを取得します.... 成功 338:IDirect3DDevice9 オブジェクトを取得します.... ハードウエア頂点演算を使用します 1328:成功 1329:Driver:ati2dvag.dll Description:ATI Radeon HD 4600 Series 1330:画面のフォーマットは D3DFMT_R5G6B5 です 1331:Zバッファのフォーマットは D3DFMT_D16 です 1332:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 1333:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 1333:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です 1334:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 1335:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です 1336:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 1337:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です 1337:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です 1338:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です 1339:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です 1340:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です 1341:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 1341:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 1342:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 1342:描画用ABGR浮動小数点16ビット型カラーフォーマットは D_D3DFMT_A16B16G16R16F です 1342:描画用ABGR浮動小数点32ビット型カラーフォーマットは D_D3DFMT_A32B32G32R32F です 1343:最大テクスチャサイズ 幅:8192 高さ:8192 1343:テクスチャステージテンポラリレジスタ:使用可 1343:減算合成のハードウェア対応:ネイティブ 1344:頂点シェーダーバージョンコード:300 1344:ピクセルシェーダーバージョンコード:300 1801:バックバッファロック転送の時間:146206nsec 一時的な描画可能バッファを使用した転送の時間:1857nsec 1802:バックバッファロックを使用しません 1803:Zバッファを作成します.... 成功 1840:プログラマブルシェーダーを使用します 2104:フォントの初期化を行います 2114:フォントの初期化は正常に終了しました 2122:文字コードバッファの初期化を行います... 完了しました 2348:テクスチャ描画情報の作成に失敗しました 2349:右記のグラフィックファイルの格納用グラフィック領域の作成に失敗しました:test.avi 2350:フォントの初期化を行います 2350:フォントの初期化は正常に終了しました 2370:Direct3DDevice9 の解放 3 2931:Direct3D9 DLL の解放 4 3286:DirectInput 関連の終了処理... 完了 3292:DirectSound の終了処理は正常に終了しました 3293:ウインドウを閉じようとしています 3327:ウインドウが破棄されようとしています 3329:ソフトを終了する準備が整いました 3498: 3498:Alloc memory dump 3498: Total size:0(0.000kb) Alloc num:0 3498: //----------------------------------------------

Page: 1 |

Re: PlayMovieについて ( No.1 )
名前:SB 日時:2012/02/09 11:50

追記です。 >4)状況をまとめようと、以下のサンプルプログラムを作ってみたが、 >  動画の再生すらされなかった。 についてですが、1〜3に使っていたプログラムでも、 BCANCELしてないのに再生されない事があって、どうもおかしいと思ったら プログラム起動後、最初の動画読み込みだけができていないようです。 4以下のサンプルプログラムでPlayMoviesを2回再生させるようにすると 1回だけ再生されるようになりました。
Re: PlayMovieについて ( No.2 )
名前:SB 日時:2012/02/09 14:54

たびたびすみません。さらに追記です。 コーデックを最新(?)にする事で、 1の「画像が汚い」と 4の「最初の実行では再生しない」は解決しました。 3は再現しないのでひょっとしたら解決したのかもしれませんが、不明です。 現状、2の「フルスクリーン時に再生位置がずれる」だけが問題となっております。
Re: PlayMovieについて ( No.3 )
名前:管理人 日時:2012/02/13 01:36

2は私の環境でも確認できましたので、修正しました こちらに修正バージョンをアップしましたので、よろしければお試しください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCCTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 3は再現しませんでした とりあえず様子見としたいと思います
Re: PlayMovieについて ( No.4 )
名前:SB(解決) 日時:2012/02/13 18:06

いつもありがとうございます。 ちゃんと表示されるのを確認しました。

Page: 1 |