声音池 soundpool

来源:互联网 发布:openresty java开发 编辑:程序博客网 时间:2024/05/01 21:46
作用  播放音效的轻量级  播放 : 铃声 


初始化  建议在onstart()方法执行初始化操作

private void initSoundPool() {    //声音池   播放音效    soundPool = null;    if (Build.VERSION.SDK_INT > 21) {        AudioAttributes audioAttributes = new AudioAttributes.Builder()                .setLegacyStreamType(AudioManager.STREAM_MUSIC)                .build();        soundPool = new SoundPool.Builder()                .setMaxStreams(3)                .setAudioAttributes(audioAttributes)                .build();    } else {        //19一下使用 参数一:最大并发流  参数二:流类型 参数三:音频文件质量 没有意义        soundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);    }    // res/raw目录    load = soundPool.load(this, R.raw.awe, 1);}

使用

private void startSoud() {    /**     *  * @param soundID a soundID returned by the load() function     * @param leftVolume left volume value (range = 0.0 to 1.0)     * @param rightVolume right volume value (range = 0.0 to 1.0)     * @param priority stream priority (0 = lowest priority)     * @param loop loop mode (0 = no loop, -1 = loop forever)     * @param rate playback rate (1.0 = normal playback, range 0.5 to 2.0)     * @return non-zero streamID if successful, zero if failed     *    public final int play(int soundID, float leftVolume, float rightVolume,    int priority, int loop, float rate) {     */    soundPool.play(load, 1, 1, 1, 0, 1);}

释放声音池


在退出程序的时候需要释放资源
//释放声音池soundPool.release();



注意事项⚠️
初始化的时候 最好需要在onstart方法来完成
因为如果用户按返回键和home键退出再进来的时候需要重新获取声音池

建议
初始化  onstart()方法
释放    onstop()方法






0 0
原创粉丝点击