Seite 1 von 1
lame_enc.dll vs. lame.exe - was nehmen?
Verfasst: 09.07.2006 17:22
von Delle
Hallo,
angenommen man will einen kleinen Wav2MP3-Konverter schreiben,
was nimmt man dann von den beiden? Die lame.exe kann man ja
problemlos als Programm von PB aus aufrufen und im Silentmodus
ausführen lassen, allerdings bekommt man ja absolut kein Feedback wann die Konvertierung fertig ist usw.
Geht das ev. mit der lame_enc.dll? Allerdings wie spricht man die an? Im Manuel steht nirgends etwas davon

Verfasst: 09.07.2006 17:55
von AndyX
Im Manuel steht nirgends etwas davon
ich will ja wohl hoffen, dass die dem armen Manuel nichts eingraviert haben...
SCNR
Verfasst: 09.07.2006 17:59
von Kaeru Gaman
er sagte im nicht auf.
musste der arme Manuel auch noch ne Rektalsonde ertragen?
Verfasst: 09.07.2006 19:30
von Eric
Alles andere als sinnvoll:
Code: Alles auswählen
RandomSeed(GetTickCount_())
#BE_CONFIG_MP3 = 0
#BE_MP3_MODE_MONO = 3
Samples.l
BufferSize.l
hbeStream.l
*mem=AllocateMemory(28)
PokeL(*mem+0,#BE_CONFIG_MP3)
PokeL(*mem+4,44100)
PokeB(*mem+8,#BE_MP3_MODE_MONO)
PokeW(*mem+9,32)
PokeL(*mem+13,0)
OpenLibrary(0,"lame_enc.dll")
CallFunction(0,"beInitStream",*mem,@Samples,@BufferSize,@hbeStream)
*buffer = AllocateMemory(Buffersize)
*wavdata = AllocateMemory(Samples*2)
CreateFile(0,"test.mp3")
For x=0 To 1000
For y=0 To Samples
PokeW(*wavdata+x*2,Random(32768)*Random(1)*-1)
Next
CallFunction(0,"beEncodeChunk",hbeStream,Samples,*wavdata,*buffer,@Output)
WriteData(0,*buffer,Output)
Next
CallFunction(0,"beDeinitStream",hbeStream,*buffer,@Output)
WriteData(0,*buffer,Output)
CallFunction(0,"beCloseStream",hbeStream)
CloseFile(0)
Verfasst: 10.07.2006 15:42
von Delle
Hm, sehr geiles Beispiel
Aber wo findet man die Befehlsübersicht zum Ansprechen der DLL?
Verfasst: 10.07.2006 16:29
von bobobo
keine Rückgabe bei runprogram()?
mit PB4 geht das eventuell so (fast direkt aus der Hilfe)
Code: Alles auswählen
wavdatei.s =OpenFileRequester("WAVE-Datei auswählen","*.wav","Wave|*.wav",0)
SetCurrentDirectory(GetPathPart(wavdatei))
Debug GetCurrentDirectory()
Lame = RunProgram("z:\programz\Lame.exe", GetFilePart(wavdatei), "", #PB_Program_Open|#PB_Program_Read) ; Pfad zu lame.exe anpassen
Output$ = ""
If Lame
While ProgramRunning(Lame)
Output$ + ReadProgramString(Lame) + Chr(13)
Wend
Output$ + Chr(13) + Chr(13)
Output$ + "Exitcode: " + Str(ProgramExitCode(Lame))
EndIf
MessageRequester("Output", Output$)
Verfasst: 10.07.2006 23:38
von Delle
Geht tatsächlich, allerdings liefert die Konsole nur manchmal Text zurück und selbst wenn, müßte man diesen ja komplett zerhacken damit er brauchbar wird :-/
Verfasst: 11.07.2006 00:05
von Slut-Hunter
allerdings bekommt man ja absolut kein Feedback wann die Konvertierung fertig ist usw.
Lass dein Frontend einfach ne Batch Datei basteln, die nach jedem File ein Replie im Consolenfenster gibt.
Das selbe hab ich bei meinem Frontend für John The Ripper^^ auch gemacht.
Sieht ungefähr so aus(je nachdem wie man die Batchdatei schreiben lässt)
