[PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

  • Was aber dann passiert entzieht sich mir komplett :( _(5, 50) <-- ??


    Ohne Parameter wird die aktuelle Uhrzeit genommen, ansonsten kannst du die Stunden und Minuten manuell angeben, in diesem Beispiel 05:50 Uhr. Die Funktion würde also 350 zurückgeben.

  • Oh Mann .... ich bekomme bald ne Glatze ... *aufshirnklatsch*

    Groschen gefallen ....

    Die Funktion wird in der If-Abfrage zweimal aufgerufen, einmal ohne Parameter und anschließend ein zweitesmal mit den von mir vorgegebenen Parametern (5, 50) und diese werden dann mit einander verglichen?

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)

  • Klasse ... Es geht voran :)

    Damit kann ich mich jetzt der Normalisierung der Audiodaten widmen.

    Geh ich recht in der Annahme, dass ich dazu ein Programm wie MP3Gain integrieren kann?

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)

  • Da es von MP3Gain eine Kommandozeilenversion gibt ist das sogar ideal dafür geeignet, da nicht über die grafische Oberfläche gehen musst. Mit

    [autoit]

    FileInstall

    [/autoit]

    kannst MP3Gain-Kommandozeilenversion (sind nur 120KB) auch direkt in dein Script integrieren. Somit muss es keiner der Moderatoren selbst runterladen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Das hört sich doch schon mal sehr gut an. :)

    Es reicht ja, soweit ich weiß, wenn ich die "mp3gain.exe" aus der original Instalation in mein Arbeitsverzeichnis kopiere?

    Ich finde nur nirgendwo die Referenz über die Komandos. *grummls*

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)

  • Ruf die mp3gain.exe in der cmd mit dem Parameter /? auf.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Super Danke .. :)

    Da komm ich schon mal weiter ... dachte ich :D

    Ich habe mal eine grundlegende Frage:
    Am Ende bleibe ich immer wieder an den selben Stellen hängen. Ich habe zum Beispiel aus der Hilfe das folgende ...
    RunWait(@ComSpec & " /c " & "commandName") 
    Aus der mp3gain-Referenz habe ich die folgende Kommandozeile erstellt.
    mp3gain /r /m 3 /q "D:\Programm\temp\Nachrichten.mp3"

    Wo ich aber zum wiederholten male hängen bleibe ist die Zusammenführung beider Elemente.

    Nachdem was ich bis jetzt verstanden habe müßte die Zeile wie folgt aussehen?

    [autoit]

    RunWait(@ComSpec & " /r /m 3 /q " & "mp3gain.exe")

    [/autoit]


    Vermutlich ist dieser Ansatz schon gänzlich falsch, denn spätestens beim Aufrufen der Datei "D:\Programm\temp\Nachrichten.mp3" bin ich am ende.

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)

  • Ungetestet:

    [autoit]


    RunWait(@COMSPEC & ' /c "D:\mp3gain.exe" /r /m 3 /q "D:\Programm\temp\Nachrichten.mp3"')

    [/autoit][autoit][/autoit][autoit]

    oder

    [/autoit][autoit][/autoit][autoit]

    ShellExecuteWait('D:\mp3gain.exe','/r /m 3 /q "D:\Programm\temp\Nachrichten.mp3"')

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Gibt es eine Möglichkeit den Befehlen für die CMD eine "Pause" mit auf den Weg zu geben?

    Ich sehe zwar, dass die cmd aufgerufen wird, aber sie ist so schnell wieder weg, dass ich nicht sehe was passiert.

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)

  • Juppie :)

    Wieder einen Schritt weiter und einen Teil gelöst :D

    [autoit]

    #Region ### NORMALISIEREN ###
    ShellExecuteWait($scriptpath & 'subs\mp3gain.exe','/c /r /m ' & $db & ' /q "' & $scriptpath & 'temp\' & $news & '"', "", "", @SW_HIDE)
    ShellExecuteWait($scriptpath & 'subs\mp3gain.exe','/c /r /m ' & $db & ' /q "' & $scriptpath & 'temp\' & $newsopener & '"', "", "", @SW_HIDE)
    ShellExecuteWait($scriptpath & 'subs\mp3gain.exe','/c /r /m ' & $db & ' /q "' & $scriptpath & 'temp\' & $newscloser & '"', "", "", @SW_HIDE)
    #EndRegion ### NORMALISIEREN ###

    [/autoit]


    Auf zum nächsten .... ;)

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)

  • So, das nächste Hürdchen :D

    Ich habe gerade eine extra GUI für die Optionen (Eigenschaften) zum Bprogramm erstellt. In dem sollen der Pfad für die fertige Audiodaei, die gewünschte Normalisierung und auch die Zugangsdaten eingegeben und gespeichert werdenkönnen.

    Die Daten sollen dann in die vorhandene "config.ini" gespeichert werden. Aber ich bekomme eine Error-Meldung und weiß nicht warum.

    In der "options.au3" schreibe ichmittels eines "SAVE"-Butons ind die config

    [autoit]

    Case $sSave
    IniWrite($scriptpath & "data\config.ini", "Options", "$audiopath=" & '"'$audiopath'"')

    [/autoit]

    Bekomme dann aber in der "config.ini" die folgende Fehlermeldung:

    [autoit]

    [Options]
    $ftp_server="ftpserver.com"
    ERROR: synthax error <<<<---------------------------- Diese Meldung
    $zugang = "zugang.ini"
    $ftp_user="anna"
    $ftp_passwd="0815"
    $audiopath="C:"
    $db = "0"

    [/autoit][autoit][/autoit][autoit]

    [Audios}
    $news = "Nachrichten.mp3"
    $newsopener = "R4P_News_Opener.mp3"
    $newscloser = "R4P_News_Closer.mp3"

    [/autoit][autoit][/autoit][autoit]

    [Basics]
    $scriptpath = "D:\Program"

    [/autoit]

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)

  • [autoit]

    IniWrite($scriptpath & "data\config.ini", "Options", "$audiopath=" & '"'$audiopath'"')

    [/autoit]

    Hier hast du im letzten Parameter vergessen, den String mit & mit den Variablen zu verketten.

    [autoit]

    IniWrite($scriptpath & "data\config.ini", "Options", '$audiopath="' & $audiopath & '"')

    [/autoit]

    Wäre richtig ;)

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Das = wird automatisch eingefügt, du musst nur Schlüssel und Wert angeben.
    So sollte es funktionieren:

    [autoit]

    IniWrite($scriptpath & "data\config.ini", "Options", "$audiopath", $audiopath)

    [/autoit]


    Wieso der Fehler allerdings in der INI steht kann ich mir auch nicht erklären. Vielleicht ist der 4. Parameter optional, obwohl davon nichts in der Hilfe steht.

    Edit: PainTain Nope, das dürfe auch nicht funktionieren.

  • Ah .. ok ...

    Um daraus dann die Variable zurück zu bekommen holen ich mit $var = IniRead ... die Daten da wieder raus und im IniRead füge ich auch die "-Zeichen wieder ein?

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)

  • "-Zeichen? Bei IniRead sieht das von den Parametern her eigentlich ziemlich gleich aus, nur eben, dass im 4. irgendein Standardwert steht. Wenn das ein String ist hat der Natürlich "-Zeichen.

  • Das = wird automatisch eingefügt, du musst nur Schlüssel und Wert angeben.
    So sollte es funktionieren:

    [autoit]

    IniWrite($scriptpath & "data\config.ini", "Options", "$audiopath", $audiopath)

    [/autoit]


    Wieso der Fehler allerdings in der INI steht kann ich mir auch nicht erklären. Vielleicht ist der 4. Parameter optional, obwohl davon nichts in der Hilfe steht.

    Edit: PainTain Nope, das dürfe auch nicht funktionieren.


    Uups :whistling:

    Sorry, hatte garnicht auf die Parameter geschaut. Hab nur den anderen Fehler gesehen :pinch:

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • OK, nur damit ich das jetzt nicht falsch verstehe.

    In der Config.ini speichere ich ja meine Variablen ab und da ich nicht jedesmal alle Variablen einzelen einlesen will, hole ich mir die Variablen aus der config.ini mit dem #include.

    Damit würde ich IniRead ja nicht benötigen?

    Die config.ini ist wie folgt aufgebaut:

    [autoit]

    [Options]
    $ftp_server="ftpserver.com"
    $zugang = "zugang.ini"
    $ftp_user="anna"
    $ftp_passwd="0815"
    $audiopath="C:"
    $db = "0"

    [/autoit][autoit][/autoit][autoit]

    [Audios}
    $news = "Nachrichten.mp3"
    $newsopener = "R4P_News_Opener.mp3"
    $newscloser = "R4P_News_Closer.mp3"

    [/autoit][autoit][/autoit][autoit]

    [Basics]
    $scriptpath = "D:\Program"

    [/autoit]


    und aus der options.au3 schribe ich dann mittels IniWrite in die config.ini?

    Aber damit ich die config.ini über #include einlesen kann müßen die Variablen ja entsprechend geschrieben sein und dann ist wieder die [section] im weg?

    Holla die Waldfee, jetzt verrenn ich mich gerade oder? :D

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)

  • Gute Überlegung eigentlich.
    Wenn du deinen Textausschnitt als INI benutzt musst du natürlich die Ini-Funktionen benutzen, #include funktioniert da nicht.
    Wenn du das als Skript verwendest musst du wie schon gesagt die Sections entfernen, das Schreiben in die Datei wird dann auch etwas komplizierter (falls du das überhaupt musst). Außerdem funktioniert das nur, wenn das Skript nicht kompiliert wurde.

  • Das heißt, wennich das komplette script später compilieren möchte komm ich um IniRead und IniWrite nicht rum?

    und um Variable aus einer Ini-Datei auszulesen muß ich jede Einzelne in jedem Script separat mit IniRead einlesen?

    Ein Tag ist schön, wenn am ende vom "exit" alles gut gelaufen ist :)