Android中播放音视频

 自己写了一个小的demo,使用soundpool播放音视频。简单说一下soundpool和MediaPlayer播放音视频的区别

一 MediaPlayer 适合播放比较长的音频,如游戏中的背景音乐。

private MediaPlayer mPlayer = null;  
mPlayer = MediaPlayer.create(this,R.raw.music);  
mPlayer.setLooping(true);  
mPlayer.start();  

二 soundpool 通常都是播放短音效,比如枪声或者水滴声。
播放音频使用soundpool的原因是因为它播放的速度快,但是缺点就是在刚开始的时候必须预加载音频,所以
* soundpool记载的音频都有自己的interger类型的id

/**
     * 预加载音视频
     * @return
     */

    private void load(Sounds sounds){
        try {
            AssetFileDescriptor afd=mAssetManager.openFd(sounds.getAssetPath());
            //soundpool加载音频返回id
            int soundId=mSoundPool.load(afd,1);
            sounds.setAssetId(soundId);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
 public void play(Sounds sounds){
        Integer soundId=sounds.getAssetId();
        if(soundId==null){
            return;
        }
        //参数依次是 音频id 左音量,右音量,优先级,是否循环,播放速率
        //  注:如果想无限循环传入-1
        mSoundPool.play(soundId,1.0f,1.0f,1,0,1.0f);
    }

把预先下载的MP3文件放到asset文件中,注意:播放音视频的地址一定要对应
resource资源可以存储声音文件,比如放到res/raw中,可以通过id获取他,这是针对数量较少的声音文件而言,
可以想象一下如果涉及20个声音文件,如果使用Android资源系统一个个处理,效率会降低很多,,所以考虑到要把
这些文件全放到一个目录中随着应用打包就可以了,assets可以看做随应用打包的微型文件系统,支持任意 层次的文件
目录结构,类似游戏这样需要加载大量的图片和声音资源通常使用assets

源码链接 https://pan.baidu.com/s/1kVnp1PH

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值