Android添加音频的几种方法
在res文件夹中新建一个文件夹,命名为raw。在里面放入我们需要的音频文件。
第一种:
// 根据资源创建播放器对象 player = MediaPlayer.create(this, R.raw.xiaoxiaole); try { player.prepare();// 同步 } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // //播放 player.start(); //循环播放 player.setLooping(true);
第二种:
// 加载pool pool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); soundID = pool.load(this, R.raw.xiaochu, 0); pool.play(soundID, 1, 1, 1, 0, 1);
特别要注意的是:音频文件是占系统资源的 ,要重写onDestroy方法,退出的时候释放资源。
@Override public void onDestroy() { // 释放系统资源 player.release(); pool.release(); }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
Android四大组件之BroadcastReceiver详解
BroadcastReceiver(广播接收器),在Android开发中,BroadcastReceiver的应用场景非常多,属于Android四大组件之一. Android 广播分为两个角色:广播发送者.广播接收者 一. 作用 用于监听 / 接收 应用发出的广播消息,并做出响应 应用场景: 不同组件之间通信(包括应用内 / 不同应用之间) 与 Android 系统在特定情况下的通信(如当电话呼入时.网络可用时) 多线程通信 二.实现原理 Android中的广播使用了设计模式中的观察者模式:基于
-
线程池ThreadPoolExecutor使用简介与方法实例
一.简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, RejectedExecutionHandler handler) corePoolSize: 线程池维护线程的最少数量 maximumPool
-
Android四大组件之Activity详解
一.Activity的生命周期 首先,我们来了解一下Activity典型的生命周期 一个Activity从启动到结束会以如下顺序经历整个生命周期: onCreate()->onStart()->onResume()->onPause()->onStop()->onDestory().包含了六个部分,还有一个onRestart()没有调用, 下面就来一一介绍 onCreate():当 Activity 第一次创建时会被调用.当 Activity 第一次创建时会被调用.这是生命周
-
Android Java调用自己C++类库的实例讲解
Android Java 如何调用自己的 C++ 的类库 下面以 Java 调用 C++ 的加法运算函数为例,做简单说明. (使用 Android Studio 3 编译) 首先编译 c++ 类库 创建独立目录存放 c++ 文件,例如 "app/src/main/cpp/add.cpp",内容如下 #include <jni.h> extern "C" JNIEXPORT jint JNICALL Java_com_example_liyi_demo_U
-
Android之线程池ThreadPoolExecutor的简介
Android中的线程池ThreadPoolExecutor解决了单线程下载数据的效率慢和线程阻塞的的问题,它的应用也是优化实现的方式.所以它的重要性不言而喻,但是它的复杂性也大,理解上可能会有问题,不过作为安卓工程师,了解这个也是必然的. ThreadPoolExecutor有几个构造函数,最多参数的构造函数最常用,下面会详细介绍各个参数的含义及其几个参数之间的关系: <span style="font-size:18px;">ThreadPoolExecutor(cor
-
Android可自定义神奇动效的卡片切换视图实例
前言 面对众多卡片层叠效果,我们的产品童鞋也突发奇想,搞出了另一种卡片层叠切换展示的交互,而且产品狗们居然要求多做几种动效给他们看,好让他们选择,这简直就是要搞事情啊,what are you 弄啥咧?! "哥哥我做不到啊.....啊.....呸",做为一名有节操的程序猿,自然是不能说出这么没有出息的话,哥就满足你们,于是,出了个可自定义动效的卡片切换视图,效果如下所示 思路 首先,要展示出卡片层叠的视觉效果.在这里,我们通过方块的缩放大小差异以及在Y方向上的位置差异,来展现这种视觉效
-
Java自带定时任务ScheduledThreadPoolExecutor实现定时器和延时加载功能
java.util.concurrent.ScheduledThreadPoolExecutor 是JDK1 .6之后自带的包,功能强大,能实现定时器和延时加载的功能 各类功能和处理方面优于Timer 1.定时器: ScheduledThreadPoolExecutor 有个scheduleAtFixedRate(command, initialDelay, period, unit) ;方法 command: 执行的线程(可自己New一个) initialDelay:初始化执行的延时时间 p
-
Android四大组件之Service详解
一.Service简介 Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件. Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务.Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI线程中,因此,不要在Service中执行耗时的操作,除非你在Service中创建了子线程来完成耗时操作. 二.Serv
-
Android之在linux终端执行shell脚本直接打印当前运行app的日志的实现方法
1.问题 我们一般很多时候会需要在ubuntu终端上打印当前运行app的日志,我们一般常见的做法是 1).获取包名 打开当前运行的app,然后输入如下命令,然后在第一行TASK后面的就可以看到包名 adb shell dumpsys activity top 2).我们的终端安装了pidcat.py脚本,然后执行如下的命令就可以打印当前运行app的全日志, pidcat.py packageName 3).思考,为什么每次都需要这样重复的操作呢?一说到重复,我们应该立马想到是否可以用脚本解决重复
-
Spring线程池ThreadPoolExecutor配置并且得到任务执行的结果
用ThreadPoolExecutor的时候,又想知道被执行的任务的执行情况,这时就可以用FutureTask. ThreadPoolTask package com.paul.threadPool; import java.io.Serializable; import java.util.concurrent.Callable; public class ThreadPoolTask implements Callable<String>, Serializable { private s
随机推荐
- docker中搭建overlay 网络实验环境
- XP系统和Ghost安装版优缺点比较
- 重新安装2003操作系统的注意事项及备份方法
- 深度剖析java中JDK动态代理机制
- 解析Tomcat 6、7在EL表达式解析时存在的一个Bug
- 用vs调试sql存储过程图文介绍
- Android实现ListView分页自动加载数据的方法
- 一个简单的PHP入门源程序
- Linux下如何使用grep命令查找带有tab(退格)的字符
- JavaScript中的闭包原理分析
- python实现字符串连接的三种方法及其效率、适用场景详解
- JS上传前预览图片实例
- jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
- Android ADT 离线下载操作步骤
- jquery 仿QQ校友的DIV模拟窗口效果源码
- 详解Java设计模式——迭代器模式
- 关于微信小程序获取小程序码并接受buffer流保存为图片的方法
- js实现简单页面全屏
- pygame实现俄罗斯方块游戏
- Python多线程应用于自动化测试操作示例