tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル DirectShowについて
投稿日: 2017/02/11(Sat) 23:44
投稿者daigodappe
お世話になります。

 Windows8.1、Excel2010のVBAです。
(特定のコーデックで、Excel2010VBAで再生できて、VisualStudio2015Expressでは再生できなかったと言う事例なのですが、こちらのカテゴリで質問させて頂きました)
 参照設定でActiveMovie control type libraryにチェックを入れ、ダイアログを準備してButton1を追加し以下をコーディングします。

[Excel2010]
Option Explicit
'再生する動画ファイル
Private Const VIDEOFILE$ = "C:\Users\Videos\RealTimes\RealDownloader\YouTube1.mp4"
'グラフマネージャ
Private mGrp As QuartzTypeLib.FilgraphManager
Private ivideow As QuartzTypeLib.IVideoWindow

Private Sub CommandButton1_Click()
  'グラフマネージャの作成
  Set mGrp = New QuartzTypeLib.FilgraphManager
  '再生用のグラフを作成
  mGrp.RenderFile VIDEOFILE$
  'ウィンドウ内で動画を再生させる
  Set ivideow = mGrp
  ivideow.WindowStyle = &H40000000 'WS_CHILD
  ivideow.SetWindowPosition 10, 30, 320, 240
  Dim hwnd1 As Long
  hwnd1 = FindWindow("ThunderDFrame", "UserForm2")
  ivideow.Owner = hwnd1
  'ビデオウィンドウへのメッセージをフォームで受け取る
  ivideow.MessageDrain = hwnd1
  '再生
  mGrp.Run
End Sub

 これを実行(Button1押下)すると、指定した動画が再生されました。
 次に、上記ソースを、同一PC上のVisualStudio2015Expressで構築したプロジェクトに持って行って(一部、VS2015用に変更)同様に実行すると、サポートされていないフォーマット(エラーコード:0x80040265)とエラーが出ました。

[VisualStudio2015Express]
Option Explicit On
'再生する動画ファイル
Private Const VIDEOFILE$ = "C:\Users\Videos\RealTimes\RealDownloader\YouTube1.mp4"
'グラフマネージャ
Private mGrp As QuartzTypeLib.FilgraphManager
Private ivideow As QuartzTypeLib.IVideoWindow

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 'グラフマネージャの作成
 mGrp = New QuartzTypeLib.FilgraphManager
 '再生用のグラフを作成
 mGrp.RenderFile(VIDEOFILE$)
 'ウィンドウ内で動画を再生させる
 ivideow = mGrp
 ivideow.WindowStyle = &H40000000 'WS_CHILD
 ivideow.SetWindowPosition(10, 30, 320, 240)
 ivideow.Owner = Me.Handle
 '再生
 mGrp.Run()
End Sub

 VisualStudio2015Expressでも、同様にActiveMovie control type libraryにチェックを入れて試行しましたが、再生できませんでした。
 ActiveMovie control type libraryは、参照先を見た限り、双方ともC:\WINDOWS\System32quartz.dllを参照しています。

 何故だか分かる方、解決方法、回避策等お分かりの方おられますでしょうか。
VisualStudio2015Expressに何かしらの制限があるのでしょうか。
 ちなみに、.mov(クイックタイムムービー)も同様に再生できませんでしたが、.aviはどちらも再生できました。
 ご回答の程、宜しくお願い致します。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。