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

解決


なおき  2008-01-30 23:39:35  No: 138769

はじめて質問させて頂きます.
http://www.geocities.co.jp/SiliconValley/7406/tips/dshow/dshow1.html
上記のサイトを参考にVBで動画を再生できることを確認しました.

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


なおき  2008-01-30 23:48:32  No: 138770

申し訳ありません.
詳しい環境などを書くのを忘れていました.

WindowsXP
VisualBasic 6.0
Directx9 SDK

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


すがっち  2008-01-31 02:10:54  No: 138771

vw.Owner = Picture1.hWnd
これでいけました。


なおき  2008-01-31 02:42:37  No: 138772

すがっちさん,ありがとうございます.
たしかに
>vw.Owner = Picture1.hWnd
にてpictureboxないで再生できました.

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

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

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

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


すがっち  2008-01-31 03:09:39  No: 138773

ん?何がしたいのかさっぱりわからないのですが。
動画を任意のフレームで切り出しピクチャーボックスに静止画で表示したい
ということですか?


なおき  2008-01-31 03:15:40  No: 138774

すみません
そういうことを言いたかったです


なおき  2008-01-31 21:14:37  No: 138775

私の不勉強もありまして改めて質問させていただきます
最初の質問で書かせていただいたサイトにて動画の再生はできました

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

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


すがっち  2008-01-31 23:56:14  No: 138776

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-02-01 00:05:01  No: 138777

ごめんなさい。嘘つきました。
BitMapCoreHeaderじゃないですね。


なおき  2008-02-01 10:07:11  No: 138778

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

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加