Android音频播放实例

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);
时间: 2025-01-07 10:57:57

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

Android 音频播放——AudioTrack直接播PCM、MediaPlayer播媒体文件可以是audio

http://blog.csdn.net/java_android_c/article/details/52678265 Android平台播放音频的方式一般有3种.1.利用系统内置的应用程序播放音频    2.利用AudioTrack播放原始音频   3.使用MediaPlayer播放.此3种音频播放方式,以第三种MediaPlayer播放这种方式使用的最多,必须掌握! 一.使用系统内置的程序. Google想的"周到",一般都给我们提供了一些内置程序,然而这些内置程序的UI效果,那

Android 音频播放

Android平台播放音频的方式一般有3种.1.利用系统内置的应用程序播放音频    2.利用AudioTrack播放原始音频   3.使用MediaPlayer播放.此3种音频播放方式,以第三种MediaPlayer播放这种方式使用的最多,必须掌握! 一.使用系统内置的程序. Google想的"周到",一般都给我们提供了一些内置程序,然而这些内置程序的UI效果,那真是感人啊!一般内置程序,我们就是看看而已. Intent intent=new Intent(Intent.ACTION

Android 音频播放的可视化实现

最近开发的小应用想实现音频播放的可视化,看了一下要用到快速傅里叶变换的知识!不会要去翻高等代数的书复习吧!!! 幸好有大大已经写好的fft for Java 的开源库,生活在Java的世界真实好啊! 先把文章转过来备份着,接下来的时间就好好研究一下怎么应用到自己的的project里面. http://www.jb51.net/article/32887.htm fft 4 Java 的开源包在这里下载:www.netlib.org/fftpack/jfftpack.tgz 直接将里面javaso

Android 音频播放之SoundPool的使用和封装

一般大家使用的是MediaPlayer来播放音频,它的创建和销毁都是非常消耗资源的,如果我们的需求是播放一些短促而且频繁播放的音频的话MediaPlayer就有些不合适了,我们来讲讲SoundPool来播放短促的音频: SoundPool结构如下 初始化SoundPool 初始化SoundPool 我们直接new SoundPool (int maxStreams, int streamType, int srcQuality)即可 参数解释: 参数 解释 maxStreams 最大的流的数量

Android通过意图使用内置的音频播放器

如果实现一个音频文件的播放,那么在应用程序中提供播放音频文件功能的最简单的方式是利用内置的"Music(音乐)"应用程序的功能--即使用系统自带的或已安装好的音乐播放器来播放指定的音频文件. 本例比较简单,下面直接给出源代码: 布局文件activity_main: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:/

Android平台中关于音频播放

Android平台中关于音频播放有以下三种方式: 1.SoundPool ---- 适合短促且对反应速度比较高的情况(游戏音效或按键声等) 2.MediaPlayer ---- 适合比较长且时间要求不高的情况 3.AudioTrack ---- 播放解码后的PCM码流 方法一:SoundPool 1)SoundPool简介 SoundPool类是Android用于管理和播放应用程序的音频资源的类.一个SoundPool对象可以看作是一个可以从APK中导入资源或者从文件系统中载入文件的样本集合.它

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

PS:今天搞了一下如何实现音频播放...结果被坑了,看书上写的代码是挺简单的,但是有个函数就是死活没看懂,这真是受不了...最后才弄明白,原来是一个实现异步任务的一个类...这个类使用java.util.concurrent这个高效框架来管理线程以及任务的执行...可以解决匿名线程存在的问题... 学习内容: 1.理解AsyncTask 2.如何实现音频播放... 1.AsyncTask   AsyncTask的特点就是实现一个任务在另一个线程内执行,而不是在主函数中进行执行,这样就不会导致主线

求教,是否直接可以调用android的libmedia.so库进行音频播放

问题描述 问题: 在C++代码中是否可以调用android系统的libmedia.so, 我用C++写了一个测试程序,调用了libmedia.so中mediaplayer.cpp中的方法进行音频播放,可以通过编译,也可以在android系统的机顶盒中执行,但是prepare()方法一直被阻塞,求大神指点该如何解决啊,给点思路好吗?以下是测试代码: #include <stdio.h> #include <stdlib.h> #include <mediaplayer.h>

Android音频文件浏览+音频播放

该Demo运行后,会显示所有你sd卡上的音乐文件列表, 并可以点击列表选择某一首歌曲进行播放. 运行效果: 点击download出现: 然后点击歌曲调用系统播放器播放. 源代码: activity_audio_browser.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tool