VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2004/09/27(Mon) 13:48
投稿者りっとっと
Eメール
URL
タイトルRe: DirectShowでタイムシフト

カメラ関係(動画関係)はプログラミングしたことがありませんので正しい返答はできませんが、
マイクロソフトのプログラムを見て処理概要を見てみると、
1.ストリームバッファシンクの初期化
2.ストリームバッファソースの初期化
3.ストリームバッファソースの実行
4.ストリームバッファシンクの実行
という流れですよね。
つまり、ストリームバッファソースを実行してできる"C:\Example.wmv"ファイルを
ストリームバッファシンクでコントロールを行うという手順となっております。
ですので、ストリームバッファシンクの実行は、ストリームバッファソースの実行より後
に行わなければならないかと思います。

YASさんのプログラムを見てみますと、Form_Load
    Set mobjMCSink = New FilgraphManager
    Dim objFGSink As IGraphBuilder
    Set objFGSink = mobjMCSink
    Dim objSBESink As New MSVidStreamBufferSink
    Call objFGSink.AddFilter(objSBESink.SBESink, "SBESink")
    objSBESink.SinkName = "c:\temp.avi"
    Call RenderOutPin(mobjMCSink, AddFilter(mobjMCSink, "microsoft dv camera and vcr"))
    objSBESink.NameSetLock
    mobjMCSink.Run    '★
となっており、ストリームバッファシンクの初期化及び実行を行っていますが、
ストリームバッファソースの実行が行われていないのにもかかわらず
(★のところで)ストリームバッファシンクを実行していることになりますので、
ここがうまくいかない原因ではないでしょうか。
Form_Load時では、ストリームバッファシンクの初期化のみを行い、
Command1_Clickで、
MSVidCtlSrc.Run
mobjMCSink.Run
という感じでやってみてはいかがでしょうか。
あくまでも私が受け取った印象での返答ですので、うまくいかないかもしれません。


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -