一、播放声音SoundPool
成都创新互联公司云计算的互联网服务提供商,拥有超过13年的服务器租用、
成都多线机房、云服务器、网页空间、网站系统开发经验,已先后获得国家工业和信息化部颁发的互联网数据中心业务许可证。专业提供云主机、网页空间、
域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
SoundPool播放短的音效,不能播放歌曲
可以用soundpool,用soundpool可以播一些短的反应速度要求高的声音,
比如游戏中的爆破声,而mediaplayer适合播放长点的。
SoundPool载入音乐文件使用了独立的线程,不会阻塞UI主线程的操作, SoundPool类支持同时播放多个音效,这对于游戏来说是十分必要的,而MediaPlayer类是同步执行的只能一个文件一个文件的播放。
实例:
sp=new SoundPool(1,AudioManager.STREAM_MUSIC,0);
加载:
soundId = sp.load(this, R.raw.note1, 1);
播放,可设置慢速、快速、频率高低等
sp.play(soundId, 1, 1, 0, 0, 2.0f);
二、播放声音MediaPlay
MediaPlayer可播放长的声音,可后台播放
创建:
mp= MediaPlayer.create(this,R.raw.song);
释放:
mp.release();
相关资源准备、该下载就下载
mp.prepare();
播放:
mp.start();
三、录音MediaRecord
写入外部存储的权限:
"android.permission.WRITE_EXTERNAL_STORAGE"/>
录音权限:
"android.permission.RECORD_AUDIO"/>
创建目录:
File dir=new File(Environment.getExternalStorageDirectory(),"sonunds");
if(!dir.exists())
{
dir.mkdir();//创建目录
}
创建文件:
File soundFile=new File(dir,System.currentTimeMillis()+".amr");
if(!soundFile.exists())
{
try//捕获一个异常
{
soundFile.createNewFile();
}
catch(IOException e)
{
e.printStackTrace();
}
}
指定输出
mr=new MediaRecorder();
mr.setOutputFile(soundFile.getAbsolutePath());/
准备并开始录制:
mr.prepare();
mr.start();
停止录制:
mr.stop();
案例分析:
界面,四个按钮: