Android Audio-Effekt auf WAV-Datei und speichern Sie es

8

Anforderung

Android öffnet eine WAV-Datei in SD-Karte, spielen Sie es, fügen Sie einen Effekt (wie Echo, Pitch Shift usw.), speichern Sie die Datei mit Wirkung. Einfach: (

Was ich weiß

  1. Ich kann Dateien mit Soundpool oder MediaPlayer öffnen und wiedergeben.
  2. Ich kann etwas bewirken, wenn ich beides spiele. zB für den Media Player Ich kann den Reverb-Effekt einstellen. Mit SoundPool kann ich einstellen Wiedergabegeschwindigkeit, die wie eine Tonhöhenverschiebung ist. Ich bin erfolgreich in diese jetzt implementieren.
  3. Aber jede dieser Klassen hat keine Methode, um das zu speichern gespielte Datei. So kann ich nur spielen, ich kann die Musik nicht mit speichern Wirkung.

Was ich wissen möchte

  1. Gibt es noch andere interessante Klassen außer MediaPlayer oder? SoundPool. Sparen Sie nichts, Sie erwähnen nur die Klasse, ich werde das tun Forschung über das Speichern von Dateien mit ihnen.
  2. Bibliotheken von Drittanbietern, wo ich Effekte hinzufügen und speichern kann? Glücklich wenn Es ist Open Source und kostenlos. Aber erwähne sie, auch wenn es so ist proprietär.
  3. Alle anderen Bereiche, in die ich mich begeben kann. Unterstützt OpenAL Voice? Filtern mit Sprachpositionierung? Wird es mit Android funktionieren?

Bereit für die schmutzige Arbeit. Bitte lieh mir den Weg ..

BEARBEITEN:

Hat etwas mehr gesucht und ist auf AudioTrack gestoßen. Das Speichern in einer Datei wird jedoch nicht unterstützt. Also kein Glück dort auch ..

BEARBEITEN

Ok, was ist, wenn ich es selbst mache? Nutze rohe Bytes aus einer wav Datei und arbeite daran. Ich habe eine WAV-Datei mit AudioRecord aufgenommen, eine WAV-Datei bekommen. Gibt es eine Ressource, die Low-Level-Audio-Verarbeitung beschreibt (ich meine auf der Byte-Ebene).

BEARBEITEN

Nun ist die Kopfgeldzeit vorbei und ich gebe der einzigen Antwort, die ich bekommen habe, Kopfgeld. Nach 7 Tagen habe ich verstanden
  1. Wir können nicht speichern, was wir mit MediaPlayer, AudioTrack usw. spielen.
  2. Es sind keine Audiobearbeitungsbibliotheken verfügbar.
  3. Sie können rohe WAV-Dateien erhalten und die Audioverarbeitung selbst durchführen. Das Antwort gab eine gute Wrapper-Klasse zum Lesen / Schreiben von WAV-Dateien. EIN guter Java-Code zum Lesen und Ändern der Tonhöhe von WAV-Dateien ist hier .
Krishnabhadra 22.11.2012, 07:13
quelle

1 Antwort

5

Die WavFile-Klasse Ссылка beansprucht, wav-Dateien zu lesen und zu schreiben und die Manipulation pro Beispiel durch Arrays zuzulassen von Beispielwerten. Es ist sicherlich ziemlich klein, insgesamt 23kbytes Quellcode.

Ich habe es eine Weile lang schwer gehabt, eine Android-App mit der Wavfile-Klasse zu bauen. Dies stellte sich heraus, weil sowohl WavFile als auch ReadExample (aus dem obigen Link) als eigenständige Java-Programme gedacht waren, also fügen Sie eine Methode main(String [] args){} hinzu. Eclipse sieht dies und denkt, dass die Klasse ein eigenständiges lauffähiges Programm ist. Wenn ich auf die Schaltfläche run klicke, wird nur die eine Klasse mit dem Java auf dem Entwicklungscomputer ausgeführt, statt die gesamte App auf meinem Telefon zu starten. Wenn ich mich darum kümmere, die gesamte App mit dem kleinen Dropdown-Menü auf der Schaltfläche run auszuführen, habe ich keine Probleme, und die WavFile-Klasse und Beispiele werden direkt eingefügt, geben keine Warnungen in der IDE aus und funktionieren wie auf meinem Handy angekündigt.

    
emrys57 30.11.2012, 21:40
quelle