Quello che stai facendo è mappare il file audio con un identificatore nel tuo programma (letteralmente un indice nell'array). Questo non è un antipattern se ogni singolo file non è correlato con un altro.
Tuttavia ora stai introducendo la qualità del grado nell'equazione, quindi ti ritrovi con gruppi di suoni correlati l'uno con l'altro. Per risolvere questo problema, devi mappare la mappatura . Questo non ha senso, dato che la mappatura è arbitraria e dipende interamente da te su come strutturare, quindi ha senso riorganizzare in modo tale da tenerne conto.
Raggruppamento dei suoni logici
Un modo possibile potrebbe essere creare sottogruppi di suoni. Piuttosto che avere una serie di suoni [A, B, C, D], con A, B, C che sono qualità diverse dello stesso suono, puoi raggrupparlo come [[A, B, C], [D]]. Il voto che viene passato ora corrisponde direttamente all'indice nel tuo sottoarray. Si noti che D sta da solo. Se è richiesto un suono di alta qualità D, è possibile afferrare l'elemento con l'indice min(gradeArr.length - 1, gradeParam)
o, in altre parole, acquisire la qualità di livello appropriata o il massimo disponibile altrimenti.
Approccio alla denominazione dei file
Un secondo approccio potrebbe dare un raggruppamento logico a file appartenenti alla stessa classe sonora. Quindi, per il suono "birdChirping", per rappresentare più qualità del suono, i file birdChirping_01.mp3, birdChirping_02.mp3 e birdChirping_03.mp3 potrebbero essere presenti nella stessa cartella. Nel tuo programma, hai solo "birdChirping" come nome. Dare il nome e il voto sonoro, è possibile recuperare e riprodurre il file appropriato. Nel tuo programma, invece di mappare ogni singolo suono, mappi solo il suono tipo (o in questo caso "birdChirping").
Questo è più dinamico in quanto non è necessario attivare il programma per ogni nuovo file, tuttavia è possibile che si verifichino dei problemi quando il chiamante chiede un livello sonoro che non esiste. Potrebbe essere necessario elencare tutti i file chiamati birdChirping _ *. Mp3 per sapere quali qualità sonore sono disponibili fatte in questo modo. Quindi, anche se più dinamico, è anche meno robusto, quindi dovresti tenerne conto.
Conclusione
Fai lavorare i dati per te. Non aver paura di riorganizzare in configurazioni più utili, se necessario. Hai ragione di pensare che il programma non dovrebbe avere brutte altre sezioni per il voto. Questo è come lo aggiusti. Fai in modo che il programma elabori i dati forniti senza ulteriori controlli o mappature.
Spero di aiutarti!