JMF Lautstärke an Stelle ermitteln und .wav cutten

Jakarta

Mitglied
Guten Abend/Morgen,

Ich versuche ein Programm zu schreiben, dass automatisiert lange .wav-Files in kleinere Dateien zerlegt.
Das ganze soll aber nur an Stellen passieren, wo bisher Silence herscht. Wenn ein Lied also 14min dauert, er aber aufgrund meines Codes meint nach 10min schneiden zu müssen, dann soll er trotzdem die 14min warten (und die Zeit später wieder reinholen).

Gibt es eine Möglichkeit bei JMF die anliegende Lautstärke zu ermitteln?
Ich habe ein wenig in der API gestöbert und die Methode getDB() gefunden. Die gibt aber immer 0.0 zurück.
[JAVA=19]Player audioPlayer = Manager.createRealizedPlayer(audioFile.toURL());
GainControl gain = audioPlayer.getGainControl();
audioPlayer.realize();
audioPlayer.start();
Thread.sleep(5000);
System.out.println(gain.getDB());
[/code]
Dieses war der erste Streich, ..

Kann man mit dem JMF .wav Dateien zerteilen?
Oder muss ich casten und dann kompliziert teilen?

Bietet sich für mein Problem überhaupt das JMF an?
Es scheint ja schon einiges zu können, aber der Schwerpunkt scheint auf dem Player zu liegen.
Gibt es zur reinen Bearbeitung, ohne Wiedergabe, andere APIs?

Grüße
Jakarta
 

Ralph-Uwe

Bekanntes Mitglied
Moin

die Lautstärke ist in der Sounddatei selber gespeichert, die Datenwerte geben die Amplitde an.
Über GainControl wird die Verstärkung angegeben, mit der das Musikstück abgespielt wird.

Bei einer Verstärkung von 0.0 wird das Musikstück in der Lautstärke abgespielt wie in der Datei
gespeichert.
Da Du die Verstärkung nicht geändert hast, ist sie über das gesamte Musikstück bei 0.0 liegen.

Ein Sounddatei besteht aus mehr Daten als nur die reine Musik
RIFF WAVE ? Wikipedia
wenn Du eine Datei splittest, muß jeder Teil wieder mit dem Dateikopf versehen werden,
sonst kann kein Player die Dateien abspielen.
 

Jakarta

Mitglied
Hallo Ralf-Uwe,

Vielen Dank erstmal für deine Antwort. :)

Dann werde ich mit GainControl nicht weit kommen.
Gibt es bei JMF eine andere Möglichkeit Silence zu ermitteln?

Das mit dem .wav war mir klar.
Deswegen würde ich mich freuen, wenn mir jemand eine API benennen kann, die mir die Header automatisch erzeugen kann.
Das ganze per Hand ist mir ein wenig zu umständlich.
Wäre natürlich schön, wenn JMF das könnte, aber je länger ich durch die Dokumentation schaue, umso unsicherer bin ich, ob die JMF meinen Anforderungen gerecht wird.

Hat hier jemand vielleicht eine andere Sound API verwendet und kann zu ihr etwas sagen? :bahnhof:

Gruß
Jakarta
 

Ralph-Uwe

Bekanntes Mitglied
Hallo,

ich bin mir nicht sicher, ob Du das überhaupt mit JMF machen mußt bzw. kannst.

Vielleicht macht es mehr Sinn sich das .wav Format genauer unter die Lupe zunehmen.

Dann kannst Du die .wav Datei byteweise auslesen:
den Kopf von den Daten trennen, den Datenbereich
in die einzelnen Musikstücke teilen und anschließend
die einzelnen Teile wieder zusammen bauen. Sprich neuer Kopf mit dazugehörigen Datenteil.

Ich bin mir nicht sicher, aber ich glaube, dass für jede Teildatei der Kopf neu angepasst werden muss
zumindest Teilweise.

Um die Trennstellen zufinden, müssten im Datenbereich Stellen zufinden sein, in dem sich die Werte
über eine bestimmte Zeit kaum ändert und relativ niedrigen sein müßten.
 

Jakarta

Mitglied
Nabend,

Wenn es dazu bisher keine APi gibt, muss ich das wohl byteweise auseinander nehmen.
Bin grad dabei mir .wave Dateien in dem TinyHexer anzusehen, den ich zum Glück schon oft benutzt habe.
Sonst wäre mir das wohl zu viel Arbeit ;-)
Wave-Spezifikation auch offen: Dann kann es wohl losgehen.

Wenn jemand doch noch eine API kennt, die das Problem schon gelöst hat, nur her damit :toll:

Gruß
Jakarta
 

Jakarta

Mitglied
Ich habe angefangen und der AUfbau der RIFF Waves ist mir jetzt klar.
Sonderlich kompliziert ist das ja wirklich nicht.

Ich habe jetzt erste Methoden zum Einlesen des Wave-Headers, der einem alles wichtige ausgibt.
Länge, Bitrate, Kanalanzahl usw.

Als nächstes sehe ich mir mal an, wie der tatsächliche Sound aufgebaut ist für die Silence-Erkennung.

Wo ich mir hier grad meinen "Code" ansehe, denke ich nicht, dass ich den hier veröffentlichen sollte.
Der genügt keinerlei Ansprüchen und ist bisher rein funktional.
Schön hin und her gecastet :D

Naja, ggf optimiere ich das ganze zum Schluss ja noch, sodass man das wirklich als Hilfe/Denkansatz ansehen kann.^^

Tschöö mit ö
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Lautstärke AudioClip Spiele- und Multimedia-Programmierung 8
I Bei MusikStream Lautstärke anpassen Spiele- und Multimedia-Programmierung 0
M SoundEngin problme mit lautstärke reglung Spiele- und Multimedia-Programmierung 0
E Lautstärke kontrollieren per Master gain Spiele- und Multimedia-Programmierung 2
P Prozess Lautstärke ändern Spiele- und Multimedia-Programmierung 4
A Javasound - Kann Lautstärke nicht anpassen Spiele- und Multimedia-Programmierung 9
Developer_X Sound Lautstärke ohne spezifische API regulieren Spiele- und Multimedia-Programmierung 3
Dragonfire Java Sound API - Lautstärke ändert sich nicht Spiele- und Multimedia-Programmierung 2
O soundlösung für spiele (mit lautstärke) Spiele- und Multimedia-Programmierung 4
G Mausklick an vorgegebener Stelle durchführen Spiele- und Multimedia-Programmierung 3
MiMa Metadaten für Multimedia Daten ermitteln Spiele- und Multimedia-Programmierung 4
L Viergewinnt Gewinner ermitteln Spiele- und Multimedia-Programmierung 3
R Bewegungsrichtung ermitteln Spiele- und Multimedia-Programmierung 3
M Vier Gewi nnt - Sieger ermitteln Spiele- und Multimedia-Programmierung 9
A Sound Amplitude ermitteln bzw Sound auslöschen Spiele- und Multimedia-Programmierung 4
D Vertex zu Bildschirm Coordinate ermitteln? Spiele- und Multimedia-Programmierung 3
N Bildposition innerhalb eines anderen Bildes ermitteln Spiele- und Multimedia-Programmierung 2
ARadauer Grauwerte eines jpg ermitteln Spiele- und Multimedia-Programmierung 4
php1 Mauszeigerpositionen ermitteln Spiele- und Multimedia-Programmierung 4
G Ermitteln eines Punktes in einer anderen TransformGroup Spiele- und Multimedia-Programmierung 2
M Pixelfarbe ermitteln Spiele- und Multimedia-Programmierung 5

Ähnliche Java Themen

Neue Themen


Oben