Hallöchen,
ich habe folgendes Problem. Ich habe mir den "SimpleAudioRecorder" von jsresources.com (Recording to an audio file (simple version)) in eine GUI eingebaut. Das funktioniert soweit auch ganz gut. Aber... jetzt möchte mich mir einen RingRekorder bauen. Das heisst ich möchte Aufgenommene Daten die länger als x Minuten sind verwerfen.
Ich habe mir nun einen Ringspeicher mit ByteArrays gebaut, der die eingelesenen Bytearrays immer wieder überschreibt.
Das funktioniert soweit. Allerdings weiss ich jetzt nicht, wie ich die SoundDatei erstellen soll.
Die Klasse AudioSystem bietet eine methode AudioSystem.write(m_audioInputStream, m_targetType, m_outputFile);
Diese liest aus einem inputstream in eine outputfile unter berücksichtigung des m_targetType's.
Ich habe meinen "Zwischenspeicher" jetzt wie gesagt als byteArray gespeichert. Wenn ich das einfach so in eine .WAV Datei schreibe, dann fehlen die Headerdaten und kein Player kann die wieder geben. Der AudioSystem.write Methode kann ich jedoch nur einen InputStream und kein ByteArray übergeben...
Hat jemand eine Idee wie man das lösen oder besser machen kann?
ich habe folgendes Problem. Ich habe mir den "SimpleAudioRecorder" von jsresources.com (Recording to an audio file (simple version)) in eine GUI eingebaut. Das funktioniert soweit auch ganz gut. Aber... jetzt möchte mich mir einen RingRekorder bauen. Das heisst ich möchte Aufgenommene Daten die länger als x Minuten sind verwerfen.
Ich habe mir nun einen Ringspeicher mit ByteArrays gebaut, der die eingelesenen Bytearrays immer wieder überschreibt.
Das funktioniert soweit. Allerdings weiss ich jetzt nicht, wie ich die SoundDatei erstellen soll.
Die Klasse AudioSystem bietet eine methode AudioSystem.write(m_audioInputStream, m_targetType, m_outputFile);
Diese liest aus einem inputstream in eine outputfile unter berücksichtigung des m_targetType's.
Ich habe meinen "Zwischenspeicher" jetzt wie gesagt als byteArray gespeichert. Wenn ich das einfach so in eine .WAV Datei schreibe, dann fehlen die Headerdaten und kein Player kann die wieder geben. Der AudioSystem.write Methode kann ich jedoch nur einen InputStream und kein ByteArray übergeben...
Hat jemand eine Idee wie man das lösen oder besser machen kann?