■ VisualBasicで動画再生をPicturebox内でするには?

[Visual Basic 初心者掲示板] [過去ログの一覧]


なおき 2008/01/30(水) 14:39:35 <初心者>
はじめて質問させて頂きます.
http://www.geocities.co.jp/SiliconValley/7406/tips/dshow/dshow1.html
上記のサイトを参考にVBで動画を再生できることを確認しました.

希望として,PictureBox内に動画は再生できませんでしょうか.
もしわかる方いらっしゃいましたら,お教えいただけたらと思っております.
よろしくお願いします.

なおき 2008/01/30(水) 14:48:32
申し訳ありません.
詳しい環境などを書くのを忘れていました.

WindowsXP
VisualBasic 6.0
Directx9 SDK

です.よろしくお願いします.

すがっち 2008/01/30(水) 17:10:54
vw.Owner = Picture1.hWnd
これでいけました。

なおき 2008/01/30(水) 17:42:37
すがっちさん,ありがとうございます.
たしかに
>vw.Owner = Picture1.hWnd
にてpictureboxないで再生できました.

pictureboxないで表示されているのはあくまでも
ActiveMovieControllということがわかりました.

私も詳しく書くのを忘れていました.
pictureboxに入れた理由としまして,あるフレーム画像における
各画素ごとの画像処理を行いたいということでした.

ActiveMovieControllからPictureBoxに表示し,
Picture1.Point(x, y)
で各画素の値を取得することは可能でしょうか.

上記,短文で申し訳ありませんでした.

すがっち 2008/01/30(水) 18:09:39
ん?何がしたいのかさっぱりわからないのですが。
動画を任意のフレームで切り出しピクチャーボックスに静止画で表示したい
ということですか?

なおき 2008/01/30(水) 18:15:40 <初心者>
すみません
そういうことを言いたかったです

なおき 2008/01/31(木) 12:14:37
私の不勉強もありまして改めて質問させていただきます
最初の質問で書かせていただいたサイトにて動画の再生はできました

そこで任意の動画フレームを切り出してPictureboxに表示したいのですがよくわからない状態です

わかる方いらっしゃいましたらお教えいただけたらと思います
よろしくお願いします

すがっち 2008/01/31(木) 14:56:14
Dim bi As QuartzTypeLib.IMediaPosition
Set bi = mGrp

bi.CurrentPosition = 2.6
mGrp.Run
bi.StopTime = 2.6

これだと2.6秒でとまってるようなきがする。
あとは
bv.GetCurrentImage
でビットマップ拾う感じだとおもいます。
http://www.geocities.co.jp/SiliconValley/7406/tips/dshow/dshow20.html
ビットマップの形式ってのがBitMapCoreHeaderなので
扱い方が俺は全くわからないし仕事中なので、ここでやめときました。
GetCurrentImageで取得して
ヘッダーをBITMAPINFOにおきかえて
SetDIBitsToDeviceで描画あたりでできるのでは?

すがっち 2008/01/31(木) 15:05:01
ごめんなさい。嘘つきました。
BitMapCoreHeaderじゃないですね。

なおき 2008/02/01(金) 01:07:11
[[解決]]

すがっちさん,ありがとうございます.
何とかできました.

非常に参考になるヒントをありがとうございました.

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library