阅读更多 [size=small][color=olive][b]1、 Android 中的多媒体播放都是由MediaPlayer类进行处理的,通过MeidaPlayer可以播放各种
多媒体格式的音频以及视频文件,文件位置如下:
* 存储在应用程序内部的资源;
* 本地资源;
* Content Provider 提供的资源;
* 来自网络的URI 流中的资源;


2、 Android 中提供了常见的音频编码、解码机制;
* 支持的音频格式有:mp3 wav 3gp;
* 支持的视频格式有:mp4 3gp;

3、 使用MediaPlayer 播放多媒体的步骤:
* 对MediaPlayer 进行初始化工作;
* 让MediaPlayer 实例完成准备播放;
* 开始播放;
* 在播放时进行暂停,停止,以及定位到某点播放;
* 播放完成;

小贴士:
* Android 仅支持有限个数的同步MediaPlayer对象,则:播放完成之后要注意对MediaPlayer对象
进行释放;mediaPlayer.release();
* 资源文件在应用中应该放在res/raw 目录中,该目录不会被编译,能生成资源ID , 可以
通过:Resource.openRawResource(int id); 来获取二进制输入流;

4、音频播放有两种方式:
* 方式一:通过对MediaPlayer 实例进行setDataSource 方法,可以接受一个文件路径,ContentProvider提供的URI,网络URL 路径
java代码如下:

/* 获得MeidaPlayer对象 */MediaPlayer mediaPlayer = new MediaPlayer();/* 得到文件路径 *//* 注:文件存放在SD卡的根目录,一定要进行prepare()方法,使硬件进行准备 */File file = new File(Environment.getExternalStorageDirectory(),"aa.mp3");try{/* 为MediaPlayer 设置数据源 */mediaPlayer.setDataSource(file.getAbsolutePath());/* 准备 */mediaPlayer.prepare();}catch(Exception ex){ex.printStackTrace();}


* 方式二:通过create()方法返回MediaPlayer对象,通过此方式不需要prepare()工作,create()过程中该工作被完成;
java代码如下:

/* 从res/raw 资源中获取文件 */mediaPlayer = MediaPlayer.create(this,R.raw.sky);/* 根据URI:创建 *///mediaPlayer = MediaPlayer.create(this, Uri.parse("/mnt/sdcard/aa.mp3"));/* 网络URI流 *///mediaPlayer = MediaPlayer.create(this, Uri.parse("http://www.sunzone.com/aa.mp3"));




5、MediaPlayer 的缺点:
* (1)资源占用量较高,延迟时间较长。
* (2)不支持多个音频同时播放



。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
代码:
package com.example.multimediaapp;import java.io.File;import android.app.Activity;import android.media.MediaPlayer;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {private Button mediaStart,mediaPause,mediaStop;private MediaPlayer mediaPlayer;/* 初始化组件对象 */public void init(){mediaStart = (Button) findViewById(R.id.mediaStart);mediaPause = (Button) findViewById(R.id.mediaPause);mediaStop = (Button) findViewById(R.id.mediaStop);}protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);/* 初始化 */init();mediaPlayer_init();/* 设置事件监听 */mediaPause.setOnClickListener(listener);mediaStart.setOnClickListener(listener);mediaStop.setOnClickListener(listener);}/* 事件:控制音频文件的状态 */OnClickListener listener = new OnClickListener() {public void onClick(View v) {Button btn = (Button)v;int id = btn.getId();switch (id) {case R.id.mediaStart://开始mediaPlayer.start();Toast.makeText(MainActivity.this, "开始播放", 1000).show();break;case R.id.mediaPause://暂停if(mediaPlayer.isPlaying()){mediaPlayer.pause();Toast.makeText(MainActivity.this, "暂停播放", 1000).show();}break;case R.id.mediaStop://停止if(mediaPlayer.isPlaying()){mediaPlayer.stop();Toast.makeText(MainActivity.this, "停止播放", 1000).show();}break;default:break;}}};/* MediaPlayer 初始化工作 *//* 音频文件在SD卡上 */public void mediaPlayer_init(){///* 获得MeidaPlayer对象 *///mediaPlayer = new MediaPlayer();/////* 得到文件路径 *//* 注:文件存放在SD卡的根目录,一定要进行prepare()方法,使硬件进行准备 *///File file = new File(Environment.getExternalStorageDirectory(),"aa.mp3");////try{///* 为MediaPlayer 设置数据源 *///mediaPlayer.setDataSource(file.getAbsolutePath());/////* 准备 *///mediaPlayer.prepare();////}catch(Exception ex){//ex.printStackTrace();//}/* 从res/raw 资源中获取文件 */mediaPlayer = MediaPlayer.create(this,R.raw.sky);/* 根据URI:创建 *///mediaPlayer = MediaPlayer.create(this, Uri.parse("/mnt/sdcard/aa.mp3"));/* 网络URI流 *///mediaPlayer = MediaPlayer.create(this, Uri.parse("http://www.sunzone.com/aa.mp3"));}protected void onDestroy() {super.onDestroy();/* 释放MeidaPlayer 对象 */mediaPlayer.release();}} 

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. 读取android手机流量信息
  4. android 使用html5作布局文件: webview跟javascript交互
  5. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  6. android“设置”里的版本号
  7. Android开发环境搭建
  8. Android(安卓)Resource介绍和使用
  9. 2014.01.21 ——— android 关联android-support源码

随机推荐

  1. Android学习札记36:一个关于onSaveInstanc
  2. Android RecyclerView 报错:java.lang.Ill
  3. android 图片灰度处理的处理
  4. Android完美禁用Home键
  5. Android处理scrollciew里嵌套ExpandableL
  6. 轮播网络图片加载适配
  7. android之RadioButton设置setChecked(tru
  8. android闹钟(五):实现闹钟功能
  9. android 图片与byte数组间的转换
  10. Android 显示网页图片