Android 中MediaPlayer播放音频
1、播放/res/raw/目录下的音频资源
public class MainActivity extends Activity {
MediaPlayer mediaPlayer;
int position = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void start(View v) {
try {
mediaPlayer = MediaPlayer.create(this, R.raw.mus);
if (mediaPlayer != null ) {
mediaPlayer.stop();
position = 0;
}
mediaPlayer.prepare();
if (position > 0) mediaPlayer.seekTo(position);
mediaPlayer.start();
}catch (Exception e) {
e.printStackTrace();
}
}
public void stop(View v) {
mediaPlayer.stop();
}
public void pause(View v) {
position = mediaPlayer.getCurrentPosition();
mediaPlayer.pause();
}
@Override
protected void onDestroy() {
mediaPlayer.release();
super.onDestroy();
}
}
2、播放 assets目录下的音频资源
package com.test.mediaplayer; import java.io.IOException; import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.view.Menu;
import android.view.View; public class MainActivity extends Activity { MediaPlayer mediaPlayer;
int position = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
} public void start(View v) {
try {
mediaPlayer = new MediaPlayer();
AssetManager am = getAssets();
AssetFileDescriptor afd = am.openFd("mus.mp3");
mediaPlayer.setDataSource(afd.getFileDescriptor());
mediaPlayer.prepare();
if (position > 0) mediaPlayer.seekTo(position);
mediaPlayer.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public void stop(View v) {
mediaPlayer.stop();
} public void pause(View v) {
position = mediaPlayer.getCurrentPosition();
mediaPlayer.pause();
} @Override
protected void onDestroy() {
mediaPlayer.release();
super.onDestroy();
} }
3、播放sdCard上的音频资源
package com.test.mediaplayer; import java.io.IOException; import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.view.Menu;
import android.view.View; public class MainActivity extends Activity { MediaPlayer mediaPlayer;
int position = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
} public void start(View v) {
try {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("/mnt/sdcard/mus.mp3");
mediaPlayer.prepare();
if (position > 0) mediaPlayer.seekTo(position);
mediaPlayer.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public void stop(View v) {
mediaPlayer.stop();
} public void pause(View v) {
position = mediaPlayer.getCurrentPosition();
mediaPlayer.pause();
} @Override
protected void onDestroy() {
mediaPlayer.release();
super.onDestroy();
} }
4、播放网络音频资源使用 MediaPlayer的setDataSource(Context context, Uri uri)方法,Uri为音频文件的网络路径。
使用SoundPool来播放密集、短促的音效。MediaPlayer的缺点是:资源占用量高、延迟时间长,不支持多个音频同时播放,SoundPool虽然可以一次性加载多个声音,但是由于内存限制,因此应该避免使用SoundPool来播放歌曲或者做游戏背景。
Android 中MediaPlayer播放音频的更多相关文章
- Android学习总结(十六) ———— MediaPlayer播放音频与视频
一.基本概念 本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.Android的MediaPlayer包含了Audio和video的播放功能,在Andr ...
- Android MediaPlayer 播放音频
本文链接: Android MediaPlayer 播放音频 主要介绍使用MediaPlayer播放音频的方式.关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPla ...
- MediaPlayer播放音频,也可以播放视频
使用MediaPlayer播放音频或者视频的最简单例子: JAVA代码部分: public class MediaPlayerStudy extends Activity { private Butt ...
- 【Android 多媒体应用】使用MediaRecoder录制,MediaPlayer播放音频数据
1.MainActivity.java import android.annotation.TargetApi; import android.app.Activity; import android ...
- 使用MediaPlayer播放音频-----之二
MediaPlayer播放不同来源的音频文件: 一.播放应用的资源文件 1.调用MediaPlayer的create(Context context , int resid)方法加载指定资源文件. ...
- 使用MediaPlayer播放音频-----之一
MediaPlayer提供了如下方法来指定装载相应的音频文件: 1.void setDataSource( String path):指定装载path路径所代表的文件. 2.void setDa ...
- Xcode模拟器中无法播放音频文件的原因分析
在本猫的Mac Mini上开发iOS app,发现当执行到播放音频的代码时,发生错误,log如下: 2015-10-05 07:22:17.122 LearnSpriteBuilder[10321:5 ...
- Android 使用MediaPlayer 播放 视频
http://pan.baidu.com/s/1lgKLS package cn.bgxt.surfaceviewdemo; import java.io.File; import android.m ...
- VC++中MCI播放音频文件 【转】
MCI播放mp3音频文件例程 源文件中需要包含头文件 Mmsystem.h,在Project->Settings->Link->Object/libray module中加入库 Wi ...
随机推荐
- How To Release and/or Renew IP Addresses on Windows XP | 2000 | NT
Type 'ipconfig' (without the quotes) to view the status of the computer's IP address(es). If the com ...
- form 表单的name
form 中 的name 很重要, 1. 可以用来查找对应的input 2.form 提交之后 会用来作为参数列表的名字 3.enovia plm 中,name 会和 table 的field 进行对 ...
- Win7装VS2015报错"安装包丢失或损坏"的解决办法
在Win7上安装VS2015的过程中,可能会出现下图错误: 这种情况,多半是应为Win7里面缺少了两个证书: Microsoft Root Certificate Authority 2010 Mic ...
- shell巡检草拟
#!/bin/bash phy_cpu=$(cat /proc/cpuinfo | grep "physical id"|sort | uniq | wc -l) logic_cp ...
- 安装JDK,并检测JDK是否安装成功
方法/步骤 首先,我们需要先安装好我们的JDK软件,安装好之后,我们需要对我们的电脑进行环境变量配置的设置,这样我们安装的JDK才能真正起到作用. 第一步:我们需要将光标放在“计算机”上面,然 ...
- linux IPC socket(3)server简单写法
写server的一些流程总结 一.向内核申请一个socket TCP形式 sock_fd = socket(AF_INET, SOCK_STREAM, ); UDP形式 sfd = socket(AF ...
- pic16f877a的PWM实验学习
遇到的问题,编译时找不到TRISC.一开始以为头文件中没有定义,发现定义了. 所以是自己创建工程的时候,设备类型选错了. #include <pic.h> __CONFIG(0xFF32) ...
- JVM 和JMM的区别
首先从定义上看 JVM (Java Virtual Machine)Java虚拟机模型 主要描述的是Java虚拟机内部的结构以及各个结构之间的关系. JMM(Java Memory Model) Ja ...
- python 的按位与、或、异或 运算
符号 描述 运算规则 by MoreWindows & 与 两个位都为1时,结果才为1 (统计奇数) | 或 两个位都为0时,结果才为0 ...
- mysql启动脚本-my
#!/bin/sh PREFIX=/opt/mysql mysql_username="root" mysql_password=" mysql_port= functi ...