Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...