MediaPlayer播放不同来源的音频文件:

一、播放应用的资源文件

1.调用MediaPlayer的create(Context  context , int  resid)方法加载指定资源文件。

2.调用MediaPlayer的start()、pause()、stop()等方法控制播放即可。

  注:音频资源文件一般放在Android应用的/res/raw目录下。

二、播放应用的原始资源文件

  1.调用Context的getAssets()方法获取应用的AssetManager。

  2.调用AssetManager对象的openFd(String  name)方法打开指定的原生资源,该方法返回一个AssetFileDescriptor对象。

  3.调用AssetFileDescriptor的getFileDescriptor()、getStartOffset()和getLength()方法来获取音频文件的FileDescriptor、开始位置、长度等。

  4.创建MediaPlayer对象,并调用MediaPlayer对象的setDataResource(FileDescriptor  fd , long  offset  ,long  length )方法来装载音频资源。

  5.调用MediaPlayer对象的prepare()方法准备音频。

  6.调用MediaPlayer的start()、pause()、stop()等方法控制播放即可。

  注:虽然MediaPlayer提供了setDataSource(FileDescriptor  fd)方法来装载指定音频资源,但实际使用时这个方法似乎有问题:不管程序调用openFf(String  name)方法

  时指定打开哪个原始资源,MediaPlayer将总是播放第一个原始的音频资源。

三、播放外部存储器上音频文件。

  1.创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource(String  path)方法装载指定音频文件。

  2.调用MediaPlayer对象的prepare()方法准备音频。

  3。调用MediaPlayer的start()、stop()等方法控制播放即可。

四、播放来自网络的音频文件

  播放来自网络的音频文件有两种方式:

  1.直接使用MediaPlayer的静态create(Context  context , Uri  uri)方法;

  2.调用MediaPlayer的setDataSource(Context  context  Uri  uri)装载指定Uri对应的音频文件。

  以第二种方式播放来自网络的音频文件的步骤:

   1.根据网络上的音频文件所在的位置创建Uri对象。

    2.创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource(Context  context  ,Uri  uri)方法装载Uri对应的音频文件。

    3.调用MediaPlayer对象的prepare()方法准备音频。

    4.调用MediaPlayer的start()、pause()、stop()等方法控制播放即可。

使用MediaPlayer播放音频-----之二的更多相关文章

  1. Android学习总结(十六) ———— MediaPlayer播放音频与视频

    一.基本概念 本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.Android的MediaPlayer包含了Audio和video的播放功能,在Andr ...

  2. MediaPlayer播放音频,也可以播放视频

    使用MediaPlayer播放音频或者视频的最简单例子: JAVA代码部分: public class MediaPlayerStudy extends Activity { private Butt ...

  3. Android MediaPlayer 播放音频

    本文链接: Android MediaPlayer 播放音频 主要介绍使用MediaPlayer播放音频的方式.关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPla ...

  4. 使用MediaPlayer播放音频-----之一

    MediaPlayer提供了如下方法来指定装载相应的音频文件: 1.void  setDataSource( String  path):指定装载path路径所代表的文件. 2.void  setDa ...

  5. Android 中MediaPlayer播放音频

    1.播放/res/raw/目录下的音频资源 public class MainActivity extends Activity { MediaPlayer mediaPlayer; int posi ...

  6. 【Android 多媒体应用】使用MediaRecoder录制,MediaPlayer播放音频数据

    1.MainActivity.java import android.annotation.TargetApi; import android.app.Activity; import android ...

  7. WPF 播放音频使用的SoundPlayer和MediaPlayer

    WPF中,最简单最容易播放音频的方式是使用SoundPlayer类.它是.NET Framework 2.0的一部分,是对Win32 PlaySound API的封装. 它具有以下限制: 1)仅支持. ...

  8. 【转】Android播放音频MediaPlayer的几种方式介绍

    接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...

  9. Android应用开发学习笔记之播放音频

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android支持常用音视频格式文件的播放,本文我们来学习怎样开发Android应用程序对音视频进行操作. Andr ...

随机推荐

  1. iOS - UILabel

    前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UILabel : UIView <NSCoding> @available(iOS 2.0, *) p ...

  2. bootstrap学习笔记<八>(bootstrap核心布局风格——栅格系统)

    栅格系统(bootstrap的核心之一,也是bootstrap的主要布局风格) 栅格系统是对原有div布局的升级版.打破了传统div模式只能纵向垂直排列的弊端,大大提高了页面布局的速度和效果,也很好的 ...

  3. (三)stm32之串口通信DMA传输完成中断

    一.DMA功能简介 首先唠叨一下DMA的基本概念,DMA的出现大大减轻了CPU的工作量.在硬件系统中,主要由CPU(内核).外设.内存(SRAM).总线等结构组成,数据经常要在内存和外设之间,外设和外 ...

  4. Centos7 PHP7 编译安装 开机自启动

    1.PHP7.0.13下载 wget http://cn2.php.net/get/php-7.0.13.tar.gz/from/this/mirror 2.解压 .tar.gz 3. 进入目录 cd ...

  5. 养成好的JAVA编码习惯

    原文:http://blog.csdn.net/lifuxiangcaohui/article/details/25231027 最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下 ...

  6. 工作流学习——Activiti流程实例、任务管理四步曲 (zhuan)

    http://blog.csdn.net/zwk626542417/article/details/46646565 ***************************************** ...

  7. Python 调用自定义包

    创建包 # mkdir -p /python/utils # touch /python/utils/__init__.py # vi /python/utils/Log.pyimport timed ...

  8. 转!!Java JTable 根据表格内容 自动调整表格列宽

    //根据表格内容 自动调整列宽http://blog.sina.com.cn/s/blog_5e54d6140100s1d3.html

  9. VC++编译zlib

    目录 第1章简介    1 第2章版本1.2.3    2 2.1 编译汇编代码    2 2.1.1 32位汇编    2 2.1.2 64位汇编    5 2.2 Visual C++ 6.0   ...

  10. 在Android上使用Google V8 JS 引擎

    在cantk-runtime中直接使用的webview,通过JAVA扩展接口把Canvas的2d Context的API定向到JNI,通过OpenGL来图形加速,渲染速度大大提高.后来测试发现在大部分 ...