1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Viele Sounds in einer Class/Activity gut unterbringen?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Shelly22, 11.07.2012.

  1. Shelly22, 11.07.2012 #1
    Shelly22

    Shelly22 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    133
    Erhaltene Danke:
    0
    Registriert seit:
    02.06.2012
    Hallo ihr lieben. Ich bin es mal wieder [​IMG].

    SoundPool soll da das beste sein für kurze Sounds für Games oder sonstiges die unter 1MB sind.

    Jetzt wollte ich gerne ca. 80 kleine Sounds verwenden für meine App.
    Wie kann ich sie gut unterbringen? Weil 80 Sounds einzeln in der Activity/Class reinschreiben ist ja sehr unübersichtlich.

    So sieht das ganze erstmal aus:
    Code:
    1 public class Test extends Activity {
    2
    3    private SoundPool spool;
    4    private int soundID;
    5    
    6    @Override
    7    public void onCreate(Bundle savedInstanceState) {
    8        super.onCreate(savedInstanceState);
    9        setContentView(R.layout.test); 
    10        
    11        this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
    12                spool = new SoundPool(80, AudioManager.STREAM_MUSIC, 0);
    13                soundID = spool.load(this, R.raw.test, 1);
    14    }
    15 }
    
    Dann später in der Button Methode:
    Code:
    1 spool.play(soundID, 10, 10, 1, 0, 1f);
    
    So spielt er ja schonmal den Sound ab.

    Aber nun will ich nicht 80 Buttons mit 80 SoundPool Variablen extra erstellen.

    Wie kann ich das sauber hier erstellen und unterbringen ohne das ich die übersicht verliere und von jeden 80 sachen sind.


    LG
     
  2. Shelly22, 11.07.2012 #2
    Shelly22

    Shelly22 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    133
    Erhaltene Danke:
    0
    Registriert seit:
    02.06.2012
    Danke dir für die super schnelle Antwort. So wie ich das lese
    kenne ich mich wohl damit nicht so ganz aus.

    Kannst du mir genauere beispiele geben? Würde mich freuen.



    LG
     
  3. Fr4gg0r, 12.07.2012 #3
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Aaalso, du gibst deinen buttons als id jeweils genau den namen des songs, den sie abspielen sollen.


    private final HashMap<Integer, Integer> map = new HashMap<Integer, Integer>;
    private final View.OnClickListener callback = new View.OnClickListener(){
    public void onClick(View v){
    int songId = map.get(v.getId());
    spool.play(songId);
    }
    }


    Dann in onCreate:

    Class clazz = Class.forName(R$id);
    String[] songFileNames = AssetManager.list("songs/");
    for(String s: songFileNames){
    AssetFileDescriptor fd = AssetManager.open(s);
    int songId = spool.load(fd, 10);
    int buttonId = (Integer)clazz.getDeclaredField(s).get();
    map.put(buttonId, songId);
    ((Button)findViewById(buttonId)).setOnClickListener(callback);
    }



    könnte hinhaun, :D
    performancemäßig natürlich nicht das nonplusultra ;)
     
    Zuletzt bearbeitet: 12.07.2012
  4. Shelly22, 12.07.2012 #4
    Shelly22

    Shelly22 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    133
    Erhaltene Danke:
    0
    Registriert seit:
    02.06.2012
    Daannkeee. Aber da kommt das nächste problem.
    AssetManager kenne ich mich mit noch garnicht aus.
    Das problem ist ja das ich mit SoundPool ca. 80 SoundFiles machen will.
    Und jeder kommt in einen Button..Also 80 Files und 80 Buttons.

    LG
     
  5. Fr4gg0r, 12.07.2012 #5
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Das Problem ist, dass du den obigen code nicht verstanden hast. ;)
    Ich bin der Meinung, das müsste hinhauen.
    15 Zeilen Code für 80 Buttons, toll wa. :p

    (hab nochmal was geändert)
     
    Zuletzt bearbeitet: 12.07.2012
  6. Shelly22, 12.07.2012 #6
    Shelly22

    Shelly22 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    133
    Erhaltene Danke:
    0
    Registriert seit:
    02.06.2012
    Danke dir. Werde es morgen mal testen.
    Das problem ist. Buttons sind es ja. Aber nicht normal.
    Sondern die aus den GridView.


    LG
     

Diese Seite empfehlen