[size=small][color=olive][b][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代码如下:[/b][/color][/size]
[size=small][color=olive][b] * 方式二:通过create()方法返回MediaPlayer对象,通过此方式不需要prepare()工作,create()过程中该工作被完成;
java代码如下:[/b][/color][/size]
[size=small][color=red][b]
5、MediaPlayer 的缺点:
* (1)资源占用量较高,延迟时间较长。
* (2)不支持多个音频同时播放[/b][/color][/size]
[color=red]。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。[/color]
[size=small][color=green][b]代码:[/b][/color][/size]
多媒体格式的音频以及视频文件,文件位置如下:
* 存储在应用程序内部的资源;
* 本地资源;
* 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代码如下:[/b][/color][/size]
/* 获得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();
}
[size=small][color=olive][b] * 方式二:通过create()方法返回MediaPlayer对象,通过此方式不需要prepare()工作,create()过程中该工作被完成;
java代码如下:[/b][/color][/size]
/* 从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"));
[size=small][color=red][b]
5、MediaPlayer 的缺点:
* (1)资源占用量较高,延迟时间较长。
* (2)不支持多个音频同时播放[/b][/color][/size]
[color=red]。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。[/color]
[size=small][color=green][b]代码:[/b][/color][/size]
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();
}
}