lame_enc.dll vs. lame.exe - was nehmen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

lame_enc.dll vs. lame.exe - was nehmen?

Beitrag 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 :-(
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Im Manuel steht nirgends etwas davon
ich will ja wohl hoffen, dass die dem armen Manuel nichts eingraviert haben...

SCNR
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

er sagte im nicht auf.
musste der arme Manuel auch noch ne Rektalsonde ertragen?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Eric
Beiträge: 303
Registriert: 05.09.2004 09:50
Wohnort: Göttingen

Beitrag 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)
El_Choni_work: cant't you just spit the binary data to sqlite, as you would spit a hamster into a microwave oven?
* Fangles falls off the chair laughing
Bild
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Hm, sehr geiles Beispiel ;)

Aber wo findet man die Befehlsübersicht zum Ansprechen der DLL?
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag 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$)
  

‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag 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 :-/
Slut-Hunter
Beiträge: 40
Registriert: 05.06.2006 12:38

Beitrag 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)

Bild
Antworten