播放系统提示音

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();    }}

更多相关文章

  1. android 参数 加密,解密 参数提交,数据返回
  2. Android Camera中参数设置
  3. Android 使用MediaPlayer播放assets目录的音频文件
  4. 音频的播放
  5. Android 数据存储(数据库、文件、参数)操作实例
  6. android 播放音频和视频
  7. android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConn
  8. Android之SimpleAdapter简单实例和SimpleAdapter参数说明(zt)
  9. 使用android MediaPlayer播放音频文件时,有时会出现prepareasync

随机推荐

  1. python多线程文件传输范例(C/S)
  2. [Python]PDF合成小程序PDF合成小程序
  3. 关于python return 和 print 的区别
  4. python基础练习--列表问题
  5. python list range 字符串的截取 如 text
  6. 如何将两个列表中的数据写入csv中的列?
  7. Python list 交集,并集,差集
  8. Python 卡方检验、克雷姆值
  9. 运用Python语言编写获取Linux基本系统信
  10. 从0开始的Python学习019更多的Python内容