Android学习之工具类二:播放声音工具类

​
import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;

/**
 * 播放声音工具类
 *
 * @author linzhiyong
 * @time 2017-01-16 10:11:16
 * @email wflinzhiyong@163.com
 * @desc
 */
public class SoundPlayer {

    private Context context;
    private SoundPool soundPool;
    private int soundID;

    public SoundPlayer(Context context) {
        this.context = context;
        this.soundPool= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
    }

    /**
     * 加载声音资源
     *
     * @param resId
     * @return soundID
     */
    public int loadRes(int resId) {
        return this.soundPool.load(this.context, resId, 1);
    }

    /**
     * 播放声音
     *
     * @param soundID
     * @param priority
     * @param isLoop
     */
    public void play(int soundID, int priority, boolean isLoop) {
        this.soundPool.play(soundID, 1, 1, priority, isLoop ? -1 : 0, 1);
    }

    /**
     * 停止
     *
     * @param soundID
     */
    public void stop(int soundID) {
        this.soundPool.stop(soundID);
        this.soundPool.release();
    }

    /**
     * 播放声音
     *
     * @param resId
     * @param isLoop
     */
    public void play(int resId, final boolean isLoop) {
        this.soundID = loadRes(resId);
        this.soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
                play(soundID, 0, isLoop);
            }
        });
    }

    /**
     * 停止
     */
    public void stop() {
        stop(this.soundID);
    }

}

发布了125 篇原创文章 · 获赞 190 · 访问量 49万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览