URL: https://www.overclockers.at/coding-stuff/lame_enc_dll_fuer_audio-konvertierung_in_c_verwend_198019/page_1 - zur Vollversion wechseln!
Hi Leute!
Ich muss für die FH ein Programm schreiben, dass mit Hilfe der Lame.dll eine Audio-Konvertierung von wave in mp3 und mp3 in wave ermöglicht.
Jetzt such ich schon seit 3 Tagen nach einer Anleitung oder Funktions-Erklärung für die Lame.dll und finde nur fertig ausprogrammierte Sachen, die ich großteils leider nicht verstehe
Hat wer von euch vll. einen Link zu einer Erklärung wie ich die Lame.dll richtig einbinden und ansprechen kann?
MfG Stahl
hm, in wie weit sind kenntnisse mit c# / visual studio vorhanden?
die .dll am besten zum restlichen sourcecode packen und dann rechtsclick aufs projekt im VS und "add reference..." - und dann glaub ich browse und halt auswählen.
als nächstes im sourcecode ein using mit entsprechenden namespace hinzufügen.
ab dann stehen dir alle methoden der .dll zur verfügung.
Hab zwei Semester C# gelernt bis jetzt. Das soll sowas wie ein Abschlussprojekt für den Bachelor sein. Hab zwar noch 2 Semester bis dahin, nur wird in den 2 Semestern kein Programmieren mehr unterrichtet.
Ich hab jetzt die DLL zum Projekt hinzugefügt. Der Namespace bereitet mit noch Probleme. Wenn ich mit "using lame_enc;" den Namespace hinzu,fügen will schreibt er mir immer das er es nicht erkennt.
Danke für die schnelle Hilfe
gib mal link für die .dll dann versuch ichs gschwind bei mir.
ist die lame_enc.dll überhaupt ein valides .net-assembly ?
lame_enc.dll wird höchst warscheinlich in C geschrieben sein und nicht in C#.
ja, hab ich mir jetzt mittlerweile auch schon gedacht, deshalb wunderts mich auch etwas wie er es im .net-projekt als reference hinzufügen konnte.
das soll ein abschlussprojekt für den bakk sein?
hier ein link. zwar in vb aber das sollte nicht das problem sein.
http://www.vbaccelerator.com/home/v...AME/article.asp
Ja, irgendwie solls sowas in der Art sein. Ist unser letztes Programm was wir da schreiben müssen und auch das umfangreichste.
@ 3mind: Sorry, das ich ich erst jetzt wieder meld. Hab dann gestern leider keine Zeit mehr gehabt. Der Link zur DLL ist ...
http://www.free-codecs.com/Lame_Encoder_download.htm
Der nachfolgende Link führt zum Sourcecode. Leider hab ichs noch nicht geschafft den zu öffen.
http://sourceforge.net/project/show...hp?group_id=290
MfG Stahl
ok. also da die .dll scheinbar nicht als .net assembly vorliegt ist das einbinden via reference nicht so einfach möglich.
es gibt ein projekt das trotzdem in c# mit der .dll arbeiten kann (mittels [DllImport "..."]), das ganze ist jedoch dann nicht mehr so ganz trivial - aber ich denke für einen bachelor-studenten sollte es möglich sein das ganze bald zu verstehen.
link: http://www.codeproject.com/KB/audio...Compressor.aspx
musst dich für den download des project-source lediglich registrieren. ich hab's mir kurz angeschaut, sollte ganz gut als "denkanstoss" passen.
hth
Zitat von StahlDer nachfolgende Link führt zum Sourcecode. Leider hab ichs noch nicht geschafft den zu öffen.
zum thema C dll in .NET: die einser streberlösung wär ein .NET wrapper, ansonsten sollt DLLImport den job aber auch erledigen (wieso auch ned)
Danke für die Hilfe Leute
Ja auf diese Sache mit dem DllImport bin ich auch schon gekommen. Hierbei ist nur das Problem, dass man die Funktionen die man aus der DLL verwenden möchte kennen muss, was bei mir nicht der Fall ist. Mir fehlt einfach irgendwie eine anständige Dokumentation zu dem angeblich sehr genialen Ding
Die tar.gz hab ich schon mal it Winrar öffnen und entpacken können. Anschließend wollt ich das Projekt mit Visual C# öffnen und da hat er mir dann nur gesagt das ers nicht aufmachen kann und es war nur das Grundgerüst des Projektes zu erkennen, jedoch kein Code.
Werd mir mal 7-zip holen und es damit versuchen.
Nochmals Danke!
am zip liegts nicht. du brauchst vermutlich visual c++ 6.0 oder ähnliches um das projekt richtig öffnen zu können. ich glaub mich auch zu erinnern dass eine solution für 7.1 inkludiert ist, oder?
das müsste dann visual studio 2003 sein oder so.
nachtrag: hier ein auszug über methoden der lame_enc und wie diese mittels dllimport eingebunden werden können:
source hab ich eh schon weiter oben verlinkt.
Code:/// <summary> /// This function should be called after encoding the last chunk in order to flush /// the encoder. It writes any encoded data that still might be left inside the /// encoder to the output buffer. This function should NOT be called unless /// you have encoded all of the chunks in your stream. /// </summary> /// <param name="hbeStream">Handle of the stream.</param> /// <param name="pOutput">Where to write the encoded data. This buffer should be /// at least of the minimum size returned by beInitStream().</param> /// <param name="pdwOutput">Returns number of bytes of encoded data written.</param> /// <returns>On success: BE_ERR_SUCCESSFUL</returns> [DllImport("Lame_enc.dll")] public static extern uint beDeinitStream(uint hbeStream, [In, Out] byte[] pOutput, ref uint pdwOutput); /// <summary> /// Last function to be called when finished encoding a stream. /// Should unlike beDeinitStream() also be called if the encoding is canceled. /// </summary> /// <param name="hbeStream">Handle of the stream.</param> /// <returns>On success: BE_ERR_SUCCESSFUL</returns> [DllImport("Lame_enc.dll")] public static extern uint beCloseStream(uint hbeStream); /// <summary> /// Returns information like version numbers (both of the DLL and encoding engine), /// release date and URL for lame_enc's homepage. /// All this information should be made available to the user of your product /// through a dialog box or something similar. /// </summary> /// <param name="pbeVersion"Where version number, release date and URL for homepage /// is returned.</param> [DllImport("Lame_enc.dll")] public static extern void beVersion([Out] BE_VERSION pbeVersion); [DllImport("Lame_enc.dll", CharSet=CharSet.Ansi)] public static extern void beWriteVBRHeader(string pszMP3FileName); [DllImport("Lame_enc.dll")] public static extern uint beEncodeChunkFloatS16NI(uint hbeStream, uint nSamples, [In]float[] buffer_l, [In]float[] buffer_r, [In, Out]byte[] pOutput, ref uint pdwOutput); [DllImport("Lame_enc.dll")] public static extern uint beFlushNoGap(uint hbeStream, [In, Out]byte[] pOutput, ref uint pdwOutput); [DllImport("Lame_enc.dll", CharSet=CharSet.Ansi)] public static extern uint beWriteInfoTag(uint hbeStream, string lpszFileName);
Ich glaub ich weis jetzt in welcher Sprache die dll geschrieben wurde. Ist es möglich, dass sie in Visual Basic geschrieben wurde? Wenn man nach .vcproj googelt findet man u.a. folgenden Eintrag
http://filext.com/file-extension/VCPROJ
Dort führt einen ein Link weiter auf die MS-Homepage in den Visual Basic Bereich. Werd mal versuchen mir das VS C 2008 von der Microsoft Homepage zu downloaden.
MfG
Edit: Hab mich bei Codeproject angemeldet und das Projekt gedownloadet. Werds mir vermutlich heute in der Nacht noch anschauen.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025