通过SoundPool模拟手机选择铃声

标题:通过SoundPool模拟手机选择铃声

今天学习l明日科技老师讲的通过SoundPool模拟手机选择铃声,觉得很有意思,在这里分享一下基本流程(在这里打一下广告,明日科技)

标题 基本流程

1.布局界面
2.创建SoundPoll对象,并设置音频相关的属性
将要播放的音频流,保存到HashMap对象中
播放音频

代码如下:

import androidx.appcompat.app.AppCompatActivity;
import android.media.AudioAttributes;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取列表视图
        ListView listView = (ListView) findViewById(R.id.listView);

        /*******************创建SoundPool对象,并且设置音频属性************************/

        AudioAttributes attr = new AudioAttributes.Builder()           //设置音效相关属性
                .setUsage(AudioAttributes.USAGE_GAME)                 // 设置音效使用场景
                .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)  // 设置音效的类型
                .build();
        final SoundPool soundpool = new SoundPool.Builder()           // 创建SoundPool对象
                .setAudioAttributes(attr) // 设置音效池的属性
                .setMaxStreams(10) // 设置最多可容纳10个音频流
                .build();
        /********************将要播放的音频保存到HashMap对象中****************************/

        final HashMap<Integer, Integer> soundMap = new HashMap<Integer, Integer>();//创建一个HashMap对象
        //添加音频
        soundMap.put(0,soundpool.load(this,R.raw.cuckoo,1));
        soundMap.put(1, soundpool.load(this, R.raw.chimes, 1));
        soundMap.put(2, soundpool.load(this, R.raw.notify, 1));
        soundMap.put(3, soundpool.load(this, R.raw.ringout, 1));
        soundMap.put(4, soundpool.load(this, R.raw.bird, 1));
        soundMap.put(5, soundpool.load(this, R.raw.water, 1));
        soundMap.put(6, soundpool.load(this, R.raw.cock, 1));

        /******************播放音频********************/
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                soundpool.play(soundMap.get(position), 1, 1, 0, 0, 1);  //播放所选音频
            }
        });
    }
}

完整文件

点此链接下载
注:第一次导出文件,配置可能有点问题

视图:

点击
点击播放对应的铃声

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无知的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值