Hallo zusammen,
ich habe nach einer Lösung gesucht, die bei meinen aus dem Webradio gestreamten MP3s die Stille am Anfang bzw. am Ende entfernt. Mit mp3DirectCut habe ich eine gute Lösung gefunden. Jedoch ist eine Korrektur mehrerer Dateien sehr mühsam.
Das nachfolgende Skript entfernt die Stille jeder einzelnen MP3-Datei die in einem zuvor angegebenen Ordner liegt.
Spoiler anzeigen
Opt("TrayIconDebug", 1)
Opt("WinTitleMatchMode",2)
Opt("PixelCoordMode", 0)
#include "color.au3"
[/autoit] [autoit][/autoit] [autoit]$Ordner = FileSelectFolder("Ordner auswählen", "")
[/autoit] [autoit][/autoit] [autoit]$Suche = FileFindFirstFile($Ordner & "\*.mp3")
[/autoit] [autoit][/autoit] [autoit]If $Suche = -1 Then
MsgBox(0, "Fehler", "Keine Dateien oder Ordner gefunden")
Exit
EndIf
While 1
[/autoit] [autoit][/autoit] [autoit]$Datei = FileFindNextFile($Suche)
If @error Then ExitLoop
; mp3DirectCut starten
[/autoit] [autoit][/autoit] [autoit]Run("C:\Programme\mp3DirectCut\mp3DirectCut.exe " & $Ordner & "\" & $Datei)
[/autoit] [autoit][/autoit] [autoit]WinWait("- mp3DirectCut","Anfang setzen")
If Not WinActive("- mp3DirectCut","Anfang setzen") Then WinActivate("- mp3DirectCut","Anfang setzen")
WinWaitActive("- mp3DirectCut","Anfang setzen")
WinWait("- mp3DirectCut","Navigieren")
WinMenuSelectItem("- mp3DirectCut","Navigieren","S&pezial","&Pausen suchen...")
WinWait("Pausen suchen","Diese Funktion setzt Indexmark")
; Mindestdauer auf >0,5 Sekunden festlegen
[/autoit] [autoit][/autoit] [autoit]ControlSend("Pausen suchen","Diese Funktion setzt Indexmark", "msctls_trackbar322", "{HOME}{RIGHT}")
[/autoit] [autoit][/autoit] [autoit]; Ganze Pause schneiden auswählen
[/autoit] [autoit][/autoit] [autoit]ControlCommand("Pausen suchen","Diese Funktion setzt Indexmark", "Button5", "Check", "")
[/autoit] [autoit][/autoit] [autoit]; Pausen suchen und warten bis Suche abgeschlossen
[/autoit] [autoit][/autoit] [autoit]ControlClick("Pausen suchen","Diese Funktion setzt Indexmark", "Button1")
[/autoit] [autoit][/autoit] [autoit]WinWait("Pausen suchen","Diese Funktion setzt")
If Not WinActive("Pausen suchen","Diese Funktion setzt") Then WinActivate("Pausen suchen","Diese Funktion setzt")
WinWaitActive("Pausen suchen","Diese Funktion setzt")
$X = "176"
$Y = "287"
$Wert = PixelGetColor($X, $Y)
While Hex($Wert, 6) = "FFFFFF"
[/autoit] [autoit][/autoit] [autoit]WinWait("Pausen suchen","Diese Funktion setzt")
If Not WinActive("Pausen suchen","Diese Funktion setzt") Then WinActivate("Pausen suchen","Diese Funktion setzt")
WinWaitActive("Pausen suchen","Diese Funktion setzt")
$Wert = PixelGetColor($X, $Y)
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit]; Fenster "Pausen suchen" schließen
[/autoit] [autoit][/autoit] [autoit]ControlClick("Pausen suchen","Diese Funktion setzt Indexmark", "Button3")
[/autoit] [autoit][/autoit] [autoit]WinWait("- mp3DirectCut","Navigieren")
[/autoit] [autoit][/autoit] [autoit]; geschnittenes MP3-File speichern
[/autoit] [autoit][/autoit] [autoit]WinMenuSelectItem("- mp3DirectCut","Navigieren","&Datei","Alles &speichern... Strg+W")
WinWait("Audiodatei erzeugen","")
ControlClick("Audiodatei erzeugen","","Button2")
; vorhandene Datei ersetzen
[/autoit] [autoit][/autoit] [autoit]WinWait("Audiodatei erzeugen","Möchten Sie sie ersetzen", 5)
[/autoit] [autoit][/autoit] [autoit]If WinExists("Audiodatei erzeugen","Möchten Sie sie ersetzen") Then
ControlClick("Audiodatei erzeugen","Möchten Sie sie ersetzen","Button1")
EndIf
; Quelldatei schließen und überschreiben
[/autoit] [autoit][/autoit] [autoit]WinWait("Warnhinweis","", 5)
[/autoit] [autoit][/autoit] [autoit]If WinExists("Warnhinweis","") Then
ControlClick("Warnhinweis","","Button1")
EndIf
; mp3DirectCut beenden
[/autoit] [autoit][/autoit] [autoit]WinWait("mp3DirectCut","Anfang setzen")
If Not WinActive("mp3DirectCut","Anfang setzen") Then WinActivate("mp3DirectCut","Anfang setzen")
WinWaitActive("mp3DirectCut","Anfang setzen")
Send("{ALTDOWN}{F4}{ALTUP}")
Sleep(2000)
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit]FileClose($Suche)
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, "", "Fertig")
[/autoit]
Vielleicht kanns ja jemand brauchen.
Gruß
speedy08