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. 团队作业Week5之团队贡献分的分配

    一.团队贡献分的分配规则 首先,我们团队共有5个人,平均每个人50分,所以我们团队的总分为5*50=250,我们先把50分分成以下几份: 序号 贡献类型 权重 分数 1 代码贡献 40% 20 * 5 ...

  2. javascript中获取非行间样式的方法

    我们都知道一般在javascript中获取样式一般用的是nodeObj.style.attr这个属性的,但是这个属性只能获取行间样式非行间样式比如写在样式表中的样式那么用nodeObj.style.a ...

  3. Oracle分析函数的项目实践实例

    SELECT * FROM SSE2_FLOW_EXPENSE T1 JOIN (SELECT SFEL.*, ROW_NUMBER() OVER(PARATITION BY SFEL.FE_EXPE ...

  4. Java中JTree的简单案例

    package ch12; import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; /** * Created by ...

  5. NSString / NSData / char* 类型之间的转换

    转自网络: NSString / NSData / char* 类型之间的转换 1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; ch ...

  6. maven相关资料

    http://www.yiibai.com/maven/ Maven教程 https://www.zhihu.com/question/20104270 http://huangnx.com/tags ...

  7. angularJS中ng-if的用法

    <!DOCTYPE html> <html ng-app> <head> <meta charset="utf-8"> <ti ...

  8. SVN使用报错 Synchronize operation failed. RA layer request failed svn: REPORT request on

    使用SVN同步项目时报错 RA layer request failed svn 百度了下解决方法: 删除C:\Documents and Settings\用户名\Application Data\ ...

  9. Unity3D Mecanim 动画系统骨骼动画问题解决方法

    http://7dot9.com/2014/08/16/unity3d-mecanim%E5%8A%A8%E7%94%BB%E7%B3%BB%E7%BB%9F%E9%AA%A8%E9%AA%BC%E5 ...

  10. IE6/IE7下:inline-block解决方案

    IE6/IE7下对display:inline-block的支持性不好. 1.inline元素的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的displ ...