MediaPlayer:

此类适合播放较大文件,此类文件应该存储在SD卡上,而不是在资源文件里,还有此类每次只能播放一个音频文件。

1、从资源文件中播放

 MediaPlayer   player  =   new MediaPlayer.create(this,R.raw.test);

              player.stare();

2、从文件系统播放

MediaPlayer   player  =   new MediaPlayer();

              String  path   =  "/sdcard/test.mp3";

               player.setDataSource(path);

               player.prepare();

               player.start();

3、从网络播放

(1)通过URI的方式:

 String path="http://**************.mp3";     //这里给一个歌曲的网络地址就行了

                Uri  uri  =  Uri.parse(path);

                MediaPlayer   player  =   new MediaPlayer.create(this,uri);

                player.start();

(2)通过设置数据源的方式:

 MediaPlayer   player  =   new MediaPlayer.create();

             String path="http://**************.mp3";          //这里给一个歌曲的网络地址就行了

             player.setDataSource(path);

             player.prepare();

             player.start();

SoundPool:

此类特点就是低延迟播放,适合播放实时音实现同时播放多个声音,如游戏中炸弹的爆炸音等小资源文件,此类音频比较适合放到资源文件夹 res/raw下和程序一起打成APK文件。

用法如下:

 SoundPool soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100);

        HashMap<Integer, Integer> soundPoolMap = new HashMap<Integer, Integer>();  

        soundPoolMap.put(1, soundPool.load(this, R.raw.dingdong1, 1));        

        soundPoolMap.put(2, soundPool.load(this, R.raw.dingdong2, 2));      

        public void playSound(int sound, int loop) {

            AudioManager mgr = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);   

            float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);   

            float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);       

           float volume = streamVolumeCurrent/streamVolumeMax;   

           soundPool.play(soundPoolMap.get(sound), volume, volume, 1, loop, 1f);

           //参数:1、Map中取值   2、当前音量     3、最大音量  4、优先级   5、重播次数   6、播放速度

}   

      this.playSound(1, 0);

Android音频播放实例的更多相关文章

  1. Android音频播放之SoundPool

    SoundPool 一.基本概念 在Android应用程序的开发过程中,经常需要播放多媒体文件,也许最先想到的会是MediaPlayer类了,该类提供了播放.暂停.停止及重复播放等功能性方法(该类位于 ...

  2. android 音频播放总结 soundlPool,MediaPlay

    soundlPool 用于小音频的播放多个同时播放. 使用步骤: 步骤一: 首先下载音频文件可以将其放入assets文件夹下或者res下的raw文件夹下,区别在于assets下可以再新建文件夹二raw ...

  3. Android 音频播放分析笔记

    AudioTrack是Android中比较偏底层的用来播放音频的接口,它主要被用来播放PCM音频数据,和MediaPlayer不同,它不涉及到文件解析和解码等复杂的流程,比较适合通过它来分析Andro ...

  4. Android 音频播放速率调整实现

    最近接触到的一个项目, 有音频播放.切换播放速率和拖动进度到某处播放的需求 ,由于之前只是见过并没有尝试过切换播放速率 , 于是开始调研并最终实现,下面简单记录一下这次的调研过程. MediaPlay ...

  5. Android音频播放之SoundPool 详解

    SoundPool —— 适合短促且对反应速度比较高的情况(游戏音效或按键声等) 下面介绍SoundPool的创建过程: 1. 创建一个SoundPool (构造函数) public SoundPoo ...

  6. Android声音播放实例代码

    布局文件: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=&q ...

  7. 微信小程序音频播放 InnerAudioContext 的用法

    今天项目上涉及到了微信小程序播放音频功能,所以今天跟着一些教程做了个简单的播放器 1.实现思路 刚开始想着有没有现成的组件可以直接用,找到了微信的媒体组件 audio,奈何看着 1.6.0版本开始,该 ...

  8. android如何播放和录制音频

    视频录制功能正在走来,在Androidsdk中有与之相关的类:android.media.MediaRecorder.当然,因为模拟器上没有提供必要的硬件设施,所以在学习过程中并不能实现.Media能 ...

  9. Android 学习笔记多媒体技术之 AsyncTask+实现音频播放...

    PS:今天搞了一下如何实现音频播放...结果被坑了,看书上写的代码是挺简单的,但是有个函数就是死活没看懂,这真是受不了...最后才弄明白,原来是一个实现异步任务的一个类...这个类使用java.uti ...

随机推荐

  1. SQL Server2008 列名显示无效

    在SQLServer2008中,当设计(修改)表结构之后,再用SQL语句时,列名会显示无效,但执行可以通过 如下图: 原因是SQL Server的intellisense(智能感知功能)需要重新整理一 ...

  2. linq查询语句转mongodb

    && (与操作) 子表达式可以通过&&合并来查询满足所有子表达式的文档 var query = from c in collection.AsQueryable< ...

  3. struts1日期转换处理

    问题场景 最近在维护公司旧的系统(用的struts1框架)的时候,在日期处理的时候,我将日期设定为Date类型,结果报以下错误: javax.servlet.ServletException: Bea ...

  4. 用CSS做长度超过长度显示‘...’,当鼠标放上时显示全部内容

    <!DOCTYPE html> <html> <head> <meta name="author" content="Yeeku ...

  5. QLabel添加图片链接

    <a href = "http://1450591036.qzone.qq.com"><img src=://splash.png height="30 ...

  6. hdu2444 判断二分图+最大匹配

    #include<stdio.h> #include<string.h> #include<queue> using namespace std; #define ...

  7. codevs3196 黄金宝藏

    题目描述 Description 小毛终于到达宝藏点,他意外地发现有一个外星人(名叫Pluto).宝藏是一些太空黄金,有n堆排成一行,每堆中有xi颗黄金.小毛和Pluto决定轮流从中取出黄金,规则是每 ...

  8. java判断list为空

    isEmpty()判断有没有元素而size()返回有几个元素 list.isEmpty()和list.size()==0 没有区别 list!=null跟!list.isEmpty()有什么区别? 这 ...

  9. appium-向右滑动定位

    上面5幅欢迎图,要向右滑动4次再点击[立即体验]才可以到首屏 #首页欢迎图滑动4次 for i in range(4): driver.swipe(1200, 200, 10, 200, 1500) ...

  10. Android 系统属性SystemProperty分析

     http://www.cnblogs.com/bastard/archive/2012/10/11/2720314.html Android System Property 一 System Pro ...