[C# Net] Anfänger leidet unter Directshowlib - Capturetest

@Christian: Wieso hast du bei deiner Methode GetInterfaces(string) einen bool als Rückgabewert? Entweder du bekommst eine Exception oder es hat funktioniert. Da brauchst du doch keinen Boolean als Rückgabe.
 
zu 1. Mit n bissel Trial&Error hab ichs rausgefunden..

zu 2. Wenn eine Funktion mehrere Rückgabevariablen benötigt, nimmt man ein out , Right ?

zu 4. Tja, hatte noch keine Instanz vom graphbuilder IVideoWindow gemacht.
Code:
this.videoWindow = this.graphBuilder as IVideoWindow;

@Christian:

Habe es soweit am Laufen, versuche gerade die Trackbar für das MediaSeeking
zu mißbrauchen. Wie ändere ich denn die Ausgabe von Get_Duration in Frames ?
ScrollMedia -> Trackbar !
Code:
hr = this.mediaSeeking.SetTimeFormat(TimeFormat.Frame);

ScrollMedia.Maximum = this.mediaPosition.get_Duration;
mfg chmee
 
Indem Du TrackBar.MaxValue entsprechend MediaPosition.StopTime einstellst und dann noch die TrackBar.TickFrequency anpasst. Wie genau Du die TrackBar.TickFrequency einstellst ist Dir überlassen, kannst sie aber immer in Bezug auf die Frames berechnen. Hier mal ein Beispiel, damit man sekündlich vor- und zurückspulen kann:
C#:
double
	m_stopTime,
	m_currentPosition

// Initialisiert die TrackBar. Sollte immer dann aufrufen werden,
// wenn sich das aktuelle Video geändert hat oder die Aufnahme abgeschlossen ist.
public void SeekTrackBar_Init() {
	
	if( mediaPosition == null ) return;
	mediaPosition.get_StopTime( out m_stopTime );
	mediaPosition.get_CurrentPosition( out m_currentPosition );

	seekTrackBar.Maximum = (int) Math.Round( m_stopTime, 0 );
	seekTrackBar.Value = (int) Math.Round( m_currentPosition, 0 );
	if( m_stopTime > directXCapture.DXcapture.FrameRate )
		seekTrackBar.TickFrequency = (int) Math.Round( m_stopTime / capture.FrameRate, 0 );
	else
		seekTrackBar.TickFrequency = 1;
}

void seekTrackBar_Scroll( object sender, System.EventArgs e ) {
	if( mediaPosition == null ) return;
	mediaPosition.put_CurrentPosition( seekTrackBar.Value );
}

@Norbert Eder: Strimmt, der Rückgabewert ist bei GetInterfaces(string) überflüssig.
 
Zurück