• ベストアンサー

mciSendStringによるmpegファイルの再生

現在mciSendStringを使って簡単な動画再生プログラムを作成しています。 .aviの再生まではできたものの、ファイルの拡張子が.mpegとか.mpgとかである MPEGファイルの再生を使用とすると途端に実行時エラーでロードに失敗してしまいます。 ソースコードと実行時のファイルと使用した動画はこちらです。 http://fatalita.sakura.ne.jp/OKWave/mpegMCI.zip もし宜しければどこが悪かったのか教えていただけると幸いです。 後、作業環境は以下の通りです。 環境:Visual Studio 2005, WinXP

noname#88356
noname#88356

質問者が選んだベストアンサー

  • ベストアンサー
  • hidebun
  • ベストアンサー率50% (92/181)
回答No.2

うちの環境では、EXE実行時、画面が真っ白の状態ですが、 Windowを動かすなどすると、どちらでも動画が表示されました。 (少なくとも実行時エラーは起こらない。) どうも環境依存の問題のようですね。

noname#88356
質問者

お礼

あ、すみません。画面の更新の為にInvalidateRectなどを入れるべきでした。 mciSendCommandを使ったプログラムも試し、私以外の人が作ったものも試してみましたが、 結果は同じでした。 やはりmpegだと環境依存してしまうようです。 しかしwmv形式は読み込めるということが分かったのでmpegはあきらめることにしました。 ありがとうございます。

その他の回答 (1)

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.1

http://msdn.microsoft.com/ja-jp/library/cc410496.aspx === 関数が成功すると、0 が返ります。関数が失敗すると、0 以外の値が返ります。この戻り値は DWORD 型であり、下位ワード(low-order word)はエラーコードです。エラーコードがデバイス固有のものであった場合、戻り値の上位ワード(high-order word)はドライバの識別子です。それ以外の場合、上位ワードは 0 です。戻り値のリストについては、MSDN ライブラリの「MCIERR Return Values」を参照してください。 エラーコードに対応する、エラーの内容を説明する文字列を取得するには、この関数の戻り値を mciGetErrorString 関数に渡します。 === エラー内容はなんでしたか?

noname#88356
質問者

お礼

あ、すみません。 ブレークポイントを作成してVisual Studioの変数の出力をみたら-125という 値が得られていました。 これを教えていただいたmciGetErrorStringで見てみると 『デバイス ドライバに問題があります。ドライバは閉じました。アクセスエラーです。』 と表示されてしまいました。環境によってはmciでmpegは再生できないということなのでしょうか? 2007年に購入した比較的あたらしめのPCなのですが・・・。

noname#88356
質問者

補足

case WM_CREATE: // ウィンドウが作成されたとき // MPEGファイルをオープン _stprintf( buf, _T("open test.mpeg alias test parent %u style child"), (DWORD_PTR)hWnd ); { TCHAR mciBuf[ 100 ] ={0}; MCIERROR dwMCIError = mciSendString( buf, NULL, 0, NULL ); _stprintf( mciBuf, _T("%d"), dwMCIError ); MessageBox( NULL, mciBuf, NULL, NULL ); } WM_CREATEの最初の方を上の様に変更して エラー内容を受け取ろうと、dwMCIErrorで戻り値を取得したもののそれを 参照しようとしたら 『test.exe の 0x5fb053ce でハンドルされていない例外が発生しました: 0xC0000005: 場所 0xfeeefeee を読み込み中にアクセス違反が発生しました。』 とのエラーが表示され、エラー内容を表示することができませんでした。 どうもmciSendString( buf, NULL, 0, NULL );の部分で既にエラーが発生していたようです。 しかし原因が良く分かりません。aviでは同じコードで読み込めてmpegでは 読み込めないのです。mpegには他に記述が必要なのでしょうか?

関連するQ&A

  • MPEG4という動画を再生したい

    古いカーナビがあります。 SDカードに入れたMPEG4という動画を再生できると能書きに書いてあります。 このMPEG4とはなんですか? .mp3 .mpg .aviなどいろいろ入れてみましたが、認識すらしません。 どんな拡張子のものを入れればいいのか? あるいは どう変換したものを、入れればいいのか教えてください。 よろしくお願いします。

  • mpegファイルが音声しか再生されない

    ブラウザに直接mpeg・mpgファイルのリンクを張っている場合、 そこをクリックするとブラウザ上でページが移動して、mp3をブラウザ上で再生する時と同じ画面になるので音声しか再生されません。 ブラウザ上で直接動画を見れるようになる、或いはmpgへのリンクをクリックしたときに自動的に再生ソフト(メディアプレイヤーやリアルプレイヤー)を起動させるにはどうすればよいのでしょうか。 ちなみに使用しているブラウザはIE6.0です。

  • mpegとmpgの拡張子の動画が再生できません

    どなたかお教えください。 メディアプレーヤーでmpegとmpgの拡張子の動画が再生できません。 wmvやaviは問題なく再生できます。 メディアプレーヤーがおかしいのかと思い、いろいろなソフトで再生しようとしましたが、やはりmpg、mpeg形式のものは再生できません。 どのような問題によるのかお教えいただけませんでしょうか? お願い致します。

  • MPEGファイルの再生

    メディアプレーヤーで、MPGファイルは再生できるのですが、MPEGファイルが 再生できません。ストリームをレンダリングがどうのってエラーがでます。 どうしたらいいでしょうか?

  • rm、avi、mpegの3つを再生可能なソフト

    タイトルの通りなのですが、拡張子がrm(ram)、avi、mpeg(mpg)の3種類の再生に対応しているフリーの動画再生ソフトを 探しています。 ご存知でしたらよろしくお願いします。 無いようでしたら2つ対応でも結構です。 それと、私のPCではaviはWindowsMediaPlayerに関連付けされているのですが、mpgファイル(RealPlayerに関連付け) を再生した後に必ずaviの関連付けがRealPlayerに変わってしまいます。 これを防ぐ方法はないでしょうか? わかるものだけで結構ですのでよろしくお願いします。

  • 動画が再生できません。どうしたら良いでしょうか?

    ネットでダウンロードした動画(mpeg avi)が再生できません。 拡張子はmpg mpeg MPG rm ram aviです。 RealPlayer バージョン8 Windows Media Player バージョン7.01.00.3055です。 なぜ再生できないか分かりません。 また、mpeg.001 mpeg.002など、拡張子の後ろに番号があるファイルも、どうやって再生するかわかりません。 初歩的な質問だと思いますが、どうか教えてください。

  • MPEG-2ファイルは、標準のWindows Media Playerでみるには?

    拡張子がmpgやmpegのファイルは、MPEG-1又はMPEG-2の動画ファイルです。 MPEG-1は、Windows Media Playerが標準で対応しているためそのまま再生でき ます。Windows Media Playerを使用して、拡張子がmpg(mpeg)のファイルが再生 できない場合は、MPEG-2ファイルの可能性があります。 MPEG-2ファイルは、標準のWindows Media Playerでは再生できません。 という説明をみましたが、Windows Media Playerで再生するためのコーデック?はあるのでしょうか?よろしくお願いします

  • 動画ファイルが再生できなくなりました。

    ダウンロードした、動画をGOM PLAYERで再生しようとしたところ、同PLAYERの実行プログラムが、削除した覚えもないのに、なくなっていて再生できなくなっていました。そこで一度GOM PLAYERをアンインストールして、再インストールしました。その後上記動画を再生したところ、「CODECが設置されていない」メッセージが現れて再生ができません。 昨日までは何の異常もなく再生できていたファイル形式 MPG,AVI,WMVの動画ファイルすべてがGOM PLAYERでも、Windows MediaPlayerでも再生が出来ない状態になってしまいました。(MPG,AVIファイルはGOMPLAYERのアイコンになっています。)今まで特にCODECをインストールしないでも不自由なく再生できていたものが突然再生できなくて、困っています。

  • MPEG-2ファイルの再生

    動画をRealPlayerで見ようとしたら、「MPEG-2ファイルを再生再生できませんでした。コンピューターにMPEG-2デコーダをインストールしておく必要があります。」と表示さました。 MPEG-2デコーダをインストールするには、どうすればいいのでしょうか?

  • PS2でPC内にある動画を再生する方法

    PS2でPC内の動画を再生したいのですが 方法が分からなくて困っています。 ファイルの拡張子はmpg、avi、mpegの三つです。 どなたか教えて下さい。

専門家に質問してみよう