2017-03-02 2 views
0

Ich baue ein Android Digital Piano mit Superpowered SDK.Wie Audiodateien in Superpowered wiederverwenden?

Ich verwende eine SuperpoweredAdvancedAudioPlayer Instanz für jeden Ton (z. B. C-Ton, D-Ton, E-Ton ...).

Um Speicher zu vermeiden, würde ich Audio-Samples wieder verwenden möchte (mp3-Dateien) über SuperpoweredAdvancedAudioPlayer Instanzen und - falls erforderlich - aufschlagen sie nach unten/oben durch einen Halbton (100 Cent). z.B. Der "E-Ton" verwendet das MP3-Sample für den "D-Ton" und wird nur um 100 Cent hochgezählt.

Wie kann ich erreichen, dass die SuperPoweredAdvancedAudioPlayer-Instanz für den E-Ton das gleiche Audio-Objekt wie der D-Ton verwendet? (Ich möchte, dass die Datei d-tone.mp3 nur einmal im Speicher zugewiesen wird)

Vielen Dank!

Aktuelle Instanziierung:

player1 = new SuperpoweredAdvancedAudioPlayer(&player1 , playerEventCallback1, samplerate, 0); 
player1->open(path, fileAoffset, fileAlength); 

Antwort

1

Verwenden Sie einfach die offene Methode für jede Instanz des SuperpoweredAdvancedAudioPlayer. Eine Player-Instanz verwendet nicht viel Speicher. Wenn diese Lösung nicht gut genug ist, verwenden Sie den SuperpoweredDecoder, um den ursprünglichen Sound zu dekomprimieren, und verwenden Sie mehrere Instanzen von SuperPoweredTimeStretching, um die Tonhöhenänderungen durchzuführen. Natürlich braucht diese Version viel mehr Code.