-
Notifications
You must be signed in to change notification settings - Fork 14
Sons
Tocar sons no Android é muito fácil. Não precisa de bibliotecas externas. Basta usar a biblioteca nativa e pronto. Pra falar a verdade, tocar sons é quase uma receita de bolo. :)
Todo o código necessário para tocar sons está na classe Sound.java. Vamos ver alguns detalhes desta classe.
final public class Sound {
public static void success() {
play("success.mp3");
}
public static void fail() {
play("fail.mp3");
}
public static void play(final String file) {
final boolean isPlaySound = Beans.getBean(SharedPreferences.class).getBoolean(Constants.PREFS_PLAY_SOUND_KEY,
true);
if (!isPlaySound) {
return;
}
final Context context = Beans.getBean(Context.class);
try {
AssetFileDescriptor afd = context.getAssets().openFd("mp3/" + file);
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
O código mais importante está no método play(). É nele que obtemos o arquivo de som que queremos tocar. Lembre-se que nosso arquivo de som está na pasta /assets/mp3. Vamos passo a passo. Para conseguirmos acessar os arquivos que estão na pasta assets precisamos de um Context. É por este motivo que pegamos ele usando a classe Bean.java.
Depois, pegamos um AssetFileDescriptor que representa nosso arquivo de som. Em seguida, precisamos criar um MediaPlayer para tocar este som.