[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();
}
}
分享到:
相关推荐
Android 使用MediaPlayer播放assets或者raw目录的音频文件 https://blog.csdn.net/qq_31939617/article/details/80491552
这是一个简单的带有进度条的mediaplayer音频播放器demo,只有一个按键,用来播放和暂停。进度条可以通过拖动来改变播放的进度。供Android初学者参考
从头学Android之多媒体--使用MediaPlayer播放音频示例代码
Android 使用mediaplayer播放res/raw文件夹中的音乐的实例 (1)在res文件夹中新建一个文件夹重命名为raw,并且将要播放的音乐放到raw文件夹里面 (2)修改layout目录下的xml布局文件,添加3个按钮空间和一个文本...
主要介绍了Android的MediaPlayer播放网络音频的实现方法,很实用的功能,需要的朋友可以参考下
需要使用软件 yEd Graph Editor 打开,内容基于个人当时的知识理解分析。
Android Media-使用MediaPlayer播放SD卡中的音频
2.保证无毒 3.简单,方便,实用 4.实例可以自行改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!
Android提供了对常用音频和视频格式的支持,它所...使用MediaPlayer类播放音频比较简单,只需要创建该类的对象,并为其指定要播放的音频文件,然后调用该类的start()方法即可,下面进行详细介绍。 1.创建MediaPlayer对
百度没解决只好自己鲁。百度上好多仅仅是播放网络音频简单的一条测试,很多条目的时候快速切换经历了很多mediapleayer播放异常。
使用VideoView播放视频简单、方便,但有些早期的开发者还是更喜欢使用MediaPlayer来播放视频,但由于MediaPlayer主要用于播放音频,因此它没有提供图像输出界面,此时就需要借助于SurfaceView来显示MediaPlayer播放...
代码中使用MediaPlayer类实现播放音频的功能。
主要介绍了Android MediaPlayer 音频倍速播放,调整播放速度,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
MediaPlayer是用于播放音频和视频的,它支持多种格式音频文件(3gp、mp4),并提供了非常全面的控制方法。 方法名称 功能描述 setDataSource() 设置要播放的音频文件的位置 prepare() 在开始播放之前调用这个方法...
需要使用软件 draw.io 打开,内容基于个人当时的知识理解分析。
MediaPlayer可以播放音频和视频,另外也可以通过VideoView来播放视频,虽然VideoView比MediaPlayer简单易用,但定制性不如用MediaPlayer,这需要视情况选择。MediaPlayer播放音频比较简单,但是要播放视频就需要...
带有功能:播放、暂停、视频拖动,播放时长显示、全屏、恢复全屏、双击暂停/播放功能、保存播放记录继续播放等等。 相应的播客网址:https://blog.csdn.net/lpCrazyBoy/article/details/79842906