android学习笔记之音频

一、MediaPlayer类可用于播放音频(mp3、ogg、3gp、avi)
有两种方式来创建MediaPlayer对象:
1.用MediaPlayer的create()方法:这种方式在实例化时直接装载音频文件,适用于单个音频文件。
2.采用new MediaPlayer()方式:通过构造方法来实例化,之后通过setDataSource()方法指定要装载的文件,然后通过prepare()方法装载文件,此方式适用于可随时改变加载文件的场景。

另外 :MediaPlayer对象的一些方法:
1.start():播放音频
2.pause():暂停音频
3.stop():停止播放
二、SoundPool类也可以用于播放音频(短促)
需要用HashMap来保存音频文件(方便管理)

ListView listView= (ListView)findViewById(R.id.list);
        /**************创建SoundPool对象,并设置相关属性*****************/
        //创建一个音频属性对象
        AudioAttributes audioAttributes=new AudioAttributes.Builder()
                .setUsage(AudioAttributes.USAGE_MEDIA)//设置使用场景
                .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)//设置类型
                .build();
        final SoundPool soundPool=new SoundPool.Builder()
                .setAudioAttributes(audioAttributes)//设置音效池的属性
                .setMaxStreams(10)//设置最大可容纳音频流
                .build();
        /**************将音频文件保存到HashMap中*****************/
        final HashMap<Integer,Integer> hashMap=new HashMap();
        hashMap.put(0,soundPool.load(this,R.raw.bird,1));
        hashMap.put(1,soundPool.load(this,R.raw.chimes,1));
        hashMap.put(2,soundPool.load(this,R.raw.cock,1));
        hashMap.put(3,soundPool.load(this,R.raw.cuckoo,1));
        hashMap.put(4,soundPool.load(this,R.raw.notify,1));
        hashMap.put(5,soundPool.load(this,R.raw.ringout,1));
        hashMap.put(6,soundPool.load(this,R.raw.water,1));
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                soundPool.play(hashMap.get(position),1,1,1,0,1);
            }
        });
发布了18 篇原创文章 · 获赞 8 · 访问量 373

猜你喜欢

转载自blog.csdn.net/qq_34423913/article/details/104017708