使用MediaPlayer做的简单音乐播放器,更多内容请到百度经验查看   http://jingyan.baidu.com/article/60ccbceb63452364cab197f1.html

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:id="@+id/relativeLayout"> <TextView android:text="音频播放器" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView" /> <LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放"
android:id="@+id/button"
android:layout_weight="0.33" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="停止"
android:id="@+id/button2"
android:layout_weight="0.33" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="暂停"
android:id="@+id/button3"
android:layout_weight="0.33" />
</LinearLayout> </RelativeLayout>
package com.basillee.asus.demo;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast; import java.io.File; public class MainActivity extends Activity { private MediaPlayer mediaPlayer;//MediaPlayer对象
private boolean isPause=false;//是否暂停
private File file;//要播放的文件
private TextView hint;//声明提示信息的文本框 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取各功能按钮
final Button button=(Button)findViewById(R.id.button);//播放
final Button button1=(Button)findViewById(R.id.button2);//暂停
final Button button2=(Button)findViewById(R.id.button3);//停止 hint=(TextView)findViewById(R.id.textView);
if(!isFileExist()){
button.setEnabled(false);
}
//对MediaPlayer对象添加事件监听,当播放完成时重新开始音乐播放
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
play();
}
}); //对播放按钮进行事件监听
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
play();
if(isPause){
button1.setText("暂停");
isPause=false;
}
button1.setEnabled(true);
button2.setEnabled(true);
button.setEnabled(false);
}
}); //对暂停、继续按钮添加事件监听器
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mediaPlayer.isPlaying()&&!isPause){
mediaPlayer.pause();
isPause=true;
((Button)v).setText("继续");
hint.setText("暂停播放音频....");
button.setEnabled(true);
}else{
mediaPlayer.start();
((Button)v).setText("暂停");
hint.setText("继续播放音频....");
button.setEnabled(false);
}
}
}); //对停止按钮添加事件监听器
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.stop();
hint.setText("停止播放音频...");
button1.setEnabled(false);
button2.setEnabled(false);
button.setEnabled(true);
}
});
} @Override
protected void onDestroy() {
if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
}
mediaPlayer.release();
super.onDestroy();
} //判断文件是否存在
private boolean isFileExist(){
file=new File(Environment.getExternalStorageDirectory()+File.separator+"myMP32.mp3");
if(file.exists()){
// mediaPlayer=new MediaPlayer();
mediaPlayer=MediaPlayer.create(this,R.raw.my);
try { // mediaPlayer.setDataSource(file.getAbsolutePath());
// mediaPlayer.prepare();//预加载音频
// mediaPlayer.start();//播放音乐
}catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(this,"file exist",Toast.LENGTH_LONG).show();
return true;
}else{
Toast.makeText(this,"file don't exist",Toast.LENGTH_LONG).show();
}
return false;
} //播放音乐的方法
private void play(){
try{
mediaPlayer.reset();//从新设置要播放的音乐
// mediaPlayer.setDataSource(file.getAbsolutePath());
// mediaPlayer.prepare();//预加载音频
mediaPlayer=MediaPlayer.create(this,R.raw.my);
mediaPlayer.start();//播放音乐
hint.setText("Music is starting");
} catch (Exception e) {
e.printStackTrace();
Log.e("err",e.getMessage());
}
return ;
}
}

使用MediaPlayer做的简单音乐播放器,更多内容请到百度经验查看   http://jingyan.baidu.com/article/60ccbceb63452364cab197f1.html

Android——简单音乐播放器的更多相关文章

  1. 实例源码--Android简单音乐播放器源码

      下载源码   技术要点: 1.本地音乐管理 2.在线音乐听歌.下载 3.音频流的解码 4. HTTP通信模块 5. Sqlite数据库 6. 源码带详细的中文注释 ...... 详细介绍: 1.本 ...

  2. Android 实现简单音乐播放器(二)

    在Android 实现简单音乐播放器(一)中,我介绍了MusicPlayer的页面设计. 现在,我简单总结一些功能实现过程中的要点和有趣的细节,结合MainActivity.java代码进行说明(写出 ...

  3. Android 实现简单音乐播放器(一)

    今天掐指一算,学习Android长达近两个月了,今天开始,对过去一段时间的学习收获以及遇到的疑难杂症做一些总结. 简单音乐播放器是我自己完成的第一个功能较为完整的APP,可以说是我的Android学习 ...

  4. Android实现简单音乐播放器(MediaPlayer)

    Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能 ...

  5. Android实现简单音乐播放器(startService和bindService后台运行程序)

    Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有 ...

  6. html5 简单音乐播放器

    html5 简单音乐播放器 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> < ...

  7. iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)

    代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...

  8. Android开发6:Service的使用(简单音乐播放器的实现)

    前言 啦啦啦~各位好久不见啦~博主最近比较忙,而且最近一次实验也是刚刚结束~ 好了不废话了,直接进入我们这次的内容~ 在这篇博文里我们将学习Service(服务)的相关知识,学会使用 Service ...

  9. Android开发学习之路--MediaPlayer之简单音乐播放器初体验

    很多时候我们都会用手机来播放音乐,播放视频,那么具体地要怎么实现呢,其实主要是MediaPlayer类来完成的.下面通过简单的例子来实现一首歌曲的播放吧.新建工程MediaPlayerStudy,这里 ...

随机推荐

  1. static,interface and final

    1.static: a)抽象类(abstract class):使用了 abstract 关键字所修饰的 类叫做抽象类.抽象类无法实例化,不能 new 出来一个抽象类的对象(实例). 抽象方法(abs ...

  2. leetcode@ [22]Generate Parentheses (递归 + 卡特兰数)

    https://leetcode.com/problems/generate-parentheses/ Given n pairs of parentheses, write a function t ...

  3. 用Java实现一个通用并发对象池

    这篇文章里我们主要讨论下如何在Java里实现一个对象池.最近几年,Java虚拟机的性能在各方面都得到了极大的提升,因此对大多数对象而言,已经没有必要通过对象池来提高性能了.根本的原因是,创建一个新的对 ...

  4. SQLServer 2000个人版下载

    http://wt.duote.com/soft/11458.html                      sql server 2000个人版下载

  5. python os.path模块--转载

    os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径) ...

  6. 在Win8 Mertro 中使用SQLite

    在Win8 Mertro 中使用SQLite 分类:             .net 开发              2012-09-19 18:17     1229人阅读     评论(3)   ...

  7. (转)java读取数据库表信息,子段

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  8. Learn_Dynamic

    首先看一下Dynamic的定义 Visual C# 2010 引入了一个新类型 dynamic. 该类型是一种静态类型,但类型为 dynamic 的对象会跳过静态类型检查. 大多数情况下,该对象就像具 ...

  9. [GIF] Parenting in GIF Loop Coder

    In this lesson, we look at how you can build up complex animations by assigning one shape as the par ...

  10. 杭电 2602 Bone Collector

    Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...