当前位置: 首页 > news >正文

android 音频播放器,(一)SoundPool音频播放实例

1. Apk内,预定义按键与触发按键:

layout 按键定义:
    <Button
        android:id="@+id/start"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAllCaps="false"
        android:text="start"/>
    <Button
        android:id="@+id/pause"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAllCaps="false"
        android:text="false"/>

按键触发,代码处理:
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.start:
                playSound(1,3);
                break;
            case R.id.pause:
                mSoundpool.pause(1);
                mSoundpool.stop(1);
                break;
            default:
                break;
        }
    }

2. 创建SoundPool对象,与启动停止播放:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initSp();
        start = (Button) findViewById(R.id.start);
        pause = (Button) findViewById(R.id.pause);

        start.setOnClickListener(this);
        pause.setOnClickListener(this);

    }
    
    private void initSp() {   // 初始化 mSoundpool     
        if (Build.VERSION.SDK_INT >= 21) {
            SoundPool.Builder builder = new SoundPool.Builder();
            builder.setMaxStreams(1);
            AudioAttributes.Builder attrBuilder = new AudioAttributes.Builder();
            attrBuilder.setLegacyStreamType(AudioManager.STREAM_MUSIC);
            builder.setAudioAttributes(attrBuilder.build());
            mSoundpool = builder.build();
        } else {
            mSoundpool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
        }

            map = new HashMap();
            // 加载资源文件
            map.put(1, mSoundpool.load(this, R.raw.008, 1));
    }
    

    //  进行播放
    private void playSound(int sound, int number) {
    mSoundpool.play( sound, 
                 1,       // leftVolume
                 1,       // rightVolume
                 1,       // priority
                 number,  // loop
                (float)1);// rate,1为正常速度
    }


3. 按照,如上最简步骤进行调试,即可通过Soundpool类对象Api进行音频播放测试。 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • linux 原子操作,信号量,互斥锁mutex,自旋锁splock
  • 嵌入式数据库 sqlite3
  • 中央处理器CPU
  • 力扣第五十题——Pow(x,n)
  • Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
  • 【Linux】-----进度条小程序
  • 计算机毕业设计选题推荐-课程教学辅助系统-Java/Python项目实战
  • 【教程】Python语言的地球科学常见数据——植被指数数据-GIMMS NDVI的处理
  • Python基础教程(二)字符串和函数
  • CSS学习 01 利用鼠标悬停制造文本隐藏效果
  • 【大模型从入门到精通2】openAI api的入门介绍2
  • java基础 之 集合与栈的使用(四)
  • 智能仪表板DevExpress Dashboard v24.1 - 新增级联参数过滤
  • 数据结构(7):查找
  • 【解决方案】使用transformer指定显卡后,模型依然加载到默认第1张显卡上
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Elasticsearch 参考指南(升级前重新索引)
  • MD5加密原理解析及OC版原理实现
  • OSS Web直传 (文件图片)
  • Redis的resp协议
  • 聊聊directory traversal attack
  • 码农张的Bug人生 - 初来乍到
  • 前端工程化(Gulp、Webpack)-webpack
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 如何利用MongoDB打造TOP榜小程序
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 想使用 MongoDB ,你应该了解这8个方面!
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (2.2w字)前端单元测试之Jest详解篇
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (阿里云万网)-域名注册购买实名流程
  • (待修改)PyG安装步骤
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (一)SpringBoot3---尚硅谷总结
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .CSS-hover 的解释
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .pop ----remove 删除
  • /dev/sda2 is mounted; will not make a filesystem here!
  • :“Failed to access IIS metabase”解决方法
  • @ComponentScan比较
  • @Mapper作用
  • [AX]AX2012 AIF(四):文档服务应用实例
  • [BJDCTF2020]Easy MD51
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)