lajourtoujours Geschrieben 2. Juli 2002 Teilen Geschrieben 2. Juli 2002 Hallo Leute, habe gestern folgende Aufgabe gestellt bekommen und komm keinen Schritt weiter. Mein Chief will, ein Programm welches mit dem Codec von Windows bzw. über directx arbeited. Aber hier erst mal das Programm: Erstellen Sie eine Dialoganwendung, welche 2 Dateinamen als Eingabe annimmt und wahlweise eine mp3-Datei in eine wav-Datei oder umgekehrt umwandelt. Sie können als Vorlage auch eine Kopie (!) Ihres Programms aus der vorangegangenen Aufgabe verwenden. Ereugen Sie die entsprechenden Filtergraphen manuell: mp3_to_wav-Filtergraph: Source: CLSID_AsyncReader mpeg1 Splitter: CLSID_MPEG1Splitter MP3 Decoder: DShowUtils::CLSID_MP3Decoder Waveformat erzeugen: DShowUtils::CLSID_WAVDEST FileWriter im RIFF-Format: CLSID_FileWriter wav_to_mp3-Filtergraph: Source: CLSID_AsyncReader Waveformat Parser: DShowUtils::CLSID_WAVEParser MP3 Encoder: DShowUtils::CLSID_LameMP3Encoder File Writer (ohne RIFF): DShowUtils::CLSID_DumpFile Auch hier sind die Dateinamen für Quell- und Zieldatei über ein IFileSourceFilter-Interface (bzw. über ein IFileSinkFilter-Interface) zu benennen: IFileSourceFilter* FileSource=NULL; g_pSource->QueryInterface(IID_IFileSourceFilter, (void**)&FileSource); FileSource->Load(DShowUtils::AnsiToUnicode(aktname),NULL); FileSource->Release(); IFileSinkFilter* FileDest=NULL; g_pDest->QueryInterface(IID_IFileSinkFilter, (void**)&FileDest); FileDest->SetFileName(DShowUtils::AnsiToUnicode(aktname),NULL); FileDest->Release(); Fügen Sie die erzeugten Filter dem Filtergraphen hinzu und verbinden Sie die entsprechenden Pins wie in der nachstehenden Grafik angegeben (achten Sie dabei auf die genaue Pin-Bezeichnung!). Wenn die Filter in den Graphen eingefügt sind, können Sie die Interfaces freigeben (Release) und den Graphen testen. Vergessen Sie nicht, die für diese Aufgabe zusätzlich notwendigen DirectShow-Filter zu registrieren. Dies können Sie aus Ihrem Programm heraus zur Laufzeit tun DShowUtils::RegisterFilterDll("DUMP.AX",true); DShowUtils::RegisterFilterDll("lame_dshow.ax",true); DShowUtils::RegisterFilterDll("WAVDEST.AX",true); oder aus der Programmshell heraus regsvr32.exe DUMP.AX /s regsvr32.exe lame_dshow.ax /s regsvr32.exe WAVDEST.AX /s wobei Sie natürlich die entsprechenden Rechte benötigen. Zerstören Sie den Filtergraphen im Ereignishandler EC_COMPLETE bzw. EC_USERABORT. Bemerkung 1: Der mp3-Encoder unterstützt einen Einstellungsdialog. Testen Sie diesen über das in der Vorlesung besprochene Interface. PS: Die Funktionalität reicht. Das Programm muss nicht nach Anweisung geschrieben werde. Ich bin irgendwie noch immer für die ActivX Schiene. Bin mal gespannt. Danke im Voraus Bene Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Thanks-and-Goodbye Geschrieben 2. Juli 2002 Teilen Geschrieben 2. Juli 2002 mal ganz abgesehen davon, dass ich deinen threadtitel absolut nichtssagend finde, frage ich mich, was das im anwendungsforum soll. verschoben in den programmierbereich. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 2. Juli 2002 Teilen Geschrieben 2. Juli 2002 Original geschrieben von lajourtoujours Bin mal gespannt.Worauf? Du hast keine konkrete Frage gestellt. Erwartest Du eine Komplettlösung? P.S.: Threadtitel angepasst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.