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. 16.C#初见Lambda表达式及表达式树(九章9.1-9.3)

    在说明Lambda相关知识前,我们需要了解Lambda表达式常用于LINQ,那么我们来聊下LINQ. LINQ的基本功能就是创建操作管道,以及这些操作需要的任何状态.这些操作表示了各种关于数据的逻辑: ...

  2. 用wcf实现带有“秒传”功能的网盘

    写在前面 前面记录过这样一个关于“秒传”的实现思路,在这篇就弄了一个简单的demo实现了一下,当中有很多业务仍没考虑,只是将“秒传”的实现思路,用代码实现了一下. 关于秒传,可以参考这篇文章:何为“秒 ...

  3. 年前辞职-WCF入门学习(1,2)

    前言 周一的时候辞职了,离开了从12年毕业后8月份开始一直到现在的公司. 辞职之后当然是玩.玩了若干天的游戏,真的是没日没夜啊,但是玩的太坑,怒删游戏.话说上次玩还是在14年7月份.下次还是过年回家再 ...

  4. window下为apache配置ssl证书

    转载自 子非鱼 的博客稍作修改 第一步:依赖 配置Apache服务器支持https协议和SSL证书,最基本的要求是Apache包含openssl模块.还好apache/bin目录下有libeay32. ...

  5. git 命令的学习

    我们在安装好gitlab 之后就是怎么使用它了,这里我选择http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b806 ...

  6. requirejs

    //index.html <!doctype html> <html> <head> <meta charset="utf-8"> ...

  7. HYSBZ1036 树链剖分

    这题我建了2棵线段树,这样来处理 最值和和值,简单的题目. #include<queue> #include<stack> #include<cmath> #inc ...

  8. 【Gym 100733D】Little thief Shi

    题 Shi realized that he was almost out of money, even renting Shitalian lands. Shi was walking on a s ...

  9. 【CSU 1556】Pseudoprime numbers

    题 Description Jerry is caught by Tom. He was penned up in one room with a door, which only can be op ...

  10. POJ1067 取石子游戏

    Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...