`
1140566087
  • 浏览: 558233 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18504
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:313730
Group-logo
J2ME 基础学习课程集
浏览量:18679
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17547
社区版块
存档分类
最新评论

Android 之 使用MediaPlayer播放音频

阅读更多
[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();
	}
	
	

}
 
0
0
分享到:
评论
1 楼 yong7356 2013-09-04  
学习了。。。。。。。。。。。。。。。。。。。。

相关推荐

    Android应用开发mediaplayer播放音频,带有进度条

    在Android应用开发中,MediaPlayer类是用于播放各种音频和视频资源的核心组件。在这个特定的示例中,我们关注的是如何使用MediaPlayer与进度条(SeekBar)结合,创建一个简单的音频播放器。以下是对这个Android应用...

    Android实例之MediaPlayer播放音乐和视频

    在Android开发中,MediaPlayer是一个非常重要的组件,它用于播放音频和视频文件。在这个"Android实例之MediaPlayer播放音乐和视频"中,我们将深入探讨如何利用MediaPlayer类实现多媒体的播放功能。 首先,...

    Android 使用MediaPlayer播放视频

    `MediaPlayer`是Android SDK提供的一种核心组件,专门用于播放音频和视频文件。在这个场景中,我们将详细探讨如何使用`MediaPlayer`来播放视频,同时结合`SurfaceView`来显示视频画面。本文将深入解析相关知识点,并...

    使用MediaPlayer播放音频文件

    总的来说,`MediaPlayer`是Android开发中处理音频播放的核心工具,通过熟练掌握其使用方法,你可以创建功能丰富的音乐播放应用或者其他需要音频播放功能的应用。在实践中,可能会遇到各种问题,如文件格式不支持、...

    Android 使用MediaPlayer播放assets或者raw目录的音频文件

    Android 使用MediaPlayer播放assets或者raw目录的音频文件 https://blog.csdn.net/qq_31939617/article/details/80491552

    从头学Android之多媒体--使用MediaPlayer播放音频示例代码

    `MediaPlayer`类是Android提供的一个核心组件,专门用于播放各种音频文件。本篇将深入讲解如何使用`MediaPlayer`来实现音频播放,并通过示例代码帮助理解其工作原理。 `MediaPlayer`是一个强大的音频播放器,它可以...

    采用MediaPlayer播放网络音频和本地音频(子线程里快速启动/切换播放音频)

    在Android开发中,MediaPlayer是一个非常重要的组件,用于播放各种音频和视频资源,包括网络音频和本地音频。在处理多音频快速切换的场景时,我们可能会遇到一些挑战,比如播放异常、延迟等问题。以下是对`...

    Android MediaPlayer 自定义循环次数

    在Android开发中,MediaPlayer是处理音频和视频播放的核心类之一,它提供了丰富的API来控制多媒体文件的播放。本文将深入探讨如何使用MediaPlayer自定义循环播放的次数,这在需要重复播放特定音频片段的应用场景中...

    Android 使用mediaplayer播放res/raw文件夹中的音乐的实例

    Android 使用mediaplayer播放res/raw文件夹中的音乐的实例 (1)在res文件夹中新建一个文件夹重命名为raw,并且将要播放的音乐放到raw文件夹里面 (2)修改layout目录下的xml布局文件,添加3个按钮空间和一个文本...

    android MediaPlayer播放视频网络URL,asset目录下文件,本地视频文件

    在Android开发中,`MediaPlayer`类是用于播放各种媒体文件的核心组件。它可以处理音频、视频流,支持多种格式,如MP3、AAC、MPEG-4等。在本教程中,我们将深入探讨如何使用`MediaPlayer`播放网络URL、Asset目录下的...

    Android MediaPlayer播放mp3的实例.doc

    Android 中的 MediaPlayer 是一个功能强大且复杂的媒体播放器,可以播放音频和视频文件。在 Android 的界面上,Music 和 Video 两个应用程序都是调用 MediaPlayer 实现的。MediaPlayer 在底层是基于 OpenCore...

    MediaPlayer播放音频文件

    在Android开发中,`...总的来说,`MediaPlayer`和`ProgressBar`的结合使用,为Android应用提供了播放音频并展示进度的能力,是实现音乐播放器等应用的基础。理解和掌握这些知识点,对于Android开发者来说至关重要。

    Android提高之MediaPlayer播放网络音频的实现方法

    【Android MediaPlayer 播放网络音频的实现】 在Android开发中,`MediaPlayer`类是用于播放音频和视频的重要组件。本篇文章将详细讲解如何利用`MediaPlayer`来播放网络上的音频资源,这对于创建音乐播放器或者任何...

    Android 中级教程之------Android MediaPlayer播放mp3的实例

    本教程将深入探讨如何使用Android的MediaPlayer类来播放MP3格式的音频文件。了解这个知识点对于Android开发者来说至关重要,特别是对于那些希望构建音乐播放器或者需要在应用中集成音频播放功能的开发者。 首先,...

    Android下MediaPlayer播放MP3示例

    在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放音频和视频文件。这个组件支持多种媒体格式,包括MP3。在这个示例中,我们将深入探讨如何使用`MediaPlayer`来播放MP3文件。 首先,我们需要了解`...

    Android中播放声音的两种方法MediaPlayer 和SoundPool

    在Android平台上,开发人员可以利用两种主要的工具来播放声音:`MediaPlayer`和`SoundPool`。它们各自具有不同的特点和适用场景,下面将详细解释这两种方法及其使用方法。 ## 1. MediaPlayer `MediaPlayer`是...

    使用MediaPlayer播放音频时的基本函数调用

    需要使用软件 yEd Graph Editor 打开,内容基于个人当时的知识理解分析。

    Android多媒体应用使用MediaPlayer播放音频

    Android提供了对常用音频和视频格式的支持,它所...使用MediaPlayer类播放音频比较简单,只需要创建该类的对象,并为其指定要播放的音频文件,然后调用该类的start()方法即可,下面进行详细介绍。 1.创建MediaPlayer对

    Android MediaPlayer 音频倍速播放 调整播放速度问题

    Android MediaPlayer音频倍速播放是指在Android应用程序中使用MediaPlayer组件来播放音频文件,并且可以调整播放速度的功能。从Android API 23 (Android M)开始,MediaPlayer支持调整播放速度,可以使用...

    Android Media-使用MediaPlayer播放SD卡中的音频

    在Android平台上,Media框架是处理音视频播放的核心组件,其中包括了`MediaPlayer`类,它是用于播放音频和视频的标准API。本篇文章将详细讲解如何利用`MediaPlayer`来播放存储在SD卡上的音频文件。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics