Android 播放提示音
16lz
2021-01-23
播放系统提示音
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);Ringtone r = RingtoneManager.getRingtone(Utils.getApp(), notification);r.play();
播放指定提示音
public class SoundUtils { /** * 播放声音 不能同时播放多种音频 * 消耗资源较大 * * @param rawId */ public static void playSoundByMedia(int rawId) { try { MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setOnCompletionListener(beepListener); try { AssetFileDescriptor file = Utils.getApp().getResources().openRawResourceFd( rawId); mediaPlayer.setDataSource(file.getFileDescriptor(), file.getStartOffset(), file.getLength()); file.close(); mediaPlayer.setVolume(0.50f, 0.50f); mediaPlayer.prepare(); mediaPlayer.start(); } catch (IOException e) { mediaPlayer = null; } } catch (Exception e) { e.printStackTrace(); } } private static final MediaPlayer.OnCompletionListener beepListener = new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mediaPlayer) { mediaPlayer.seekTo(0); } }; /** * 适合播放声音短,文件小 * 可以同时播放多种音频 * 消耗资源较小 */ public static void playSound(int rawId) { SoundPool soundPool; if (Build.VERSION.SDK_INT >= 21) { SoundPool.Builder builder = new SoundPool.Builder(); //传入音频的数量 builder.setMaxStreams(1); //AudioAttributes是一个封装音频各种属性的类 AudioAttributes.Builder attrBuilder = new AudioAttributes.Builder(); //设置音频流的合适属性 attrBuilder.setLegacyStreamType(AudioManager.STREAM_MUSIC); builder.setAudioAttributes(attrBuilder.build()); soundPool = builder.build(); } else { //第一个参数是可以支持的声音数量,第二个是声音类型,第三个是声音品质 soundPool = new SoundPool(1, AudioManager.STREAM_SYSTEM, 5); } //第一个参数Context,第二个参数资源Id,第三个参数优先级 soundPool.load(Utils.getApp(), rawId, 1); soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() { @Override public void onLoadComplete(SoundPool soundPool, int sampleId, int status) { soundPool.play(1, 1, 1, 0, 0, 1); } }); //第一个参数id,即传入池中的顺序,第二个和第三个参数为左右声道,第四个参数为优先级,第五个是否循环播放,0不循环,-1循环 //最后一个参数播放比率,范围0.5到2,通常为1表示正常播放// soundPool.play(1, 1, 1, 0, 0, 1); //回收Pool中的资源 //soundPool.release(); }}
更多相关文章
- android 参数 加密,解密 参数提交,数据返回
- Android Camera中参数设置
- Android 使用MediaPlayer播放assets目录的音频文件
- 音频的播放
- Android 数据存储(数据库、文件、参数)操作实例
- android 播放音频和视频
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConn
- Android之SimpleAdapter简单实例和SimpleAdapter参数说明(zt)
- 使用android MediaPlayer播放音频文件时,有时会出现prepareasync