使用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. HW5.30

    public class Solution { public static void main(String[] args) { for(int i = 3; i <= 1000; i++) i ...

  2. [OC Foundation框架 - 13] NSValue

    NSNumber能够包装基本数据类型称为OC对象,是因为继承了NSValue 包装结构体成OC对象 1.自带结构体 void value() { CGPoint point = CGPointMake ...

  3. jquery中 cache: true和false的区别

    true:会读缓存,可能真的到服务器上. 假如上次访问了a.html,第二次的时候得到的是上次访问的a.html的结果,而不是重新到服务器获取. false:会在url后面加一个时间缀,让它跑到服务器 ...

  4. NOTES : A Model of Gas Exchange for Hyperpolarized Xe(129) Magnetic Resonance of the Lung

    NOTES :  A Model of Gas Exchange for Hyperpolarized Xe(129) Magnetic Resonance of the Lung  背景知识: Ga ...

  5. SCSS loader effect

    p{text-indent:2em;}前端开发whqet,csdn,王海庆,whqet,前端开发专家 几天来看一组利用SCSS实现的loader effect(载入效果).鼓舞大家自行动手实现,当然也 ...

  6. 递归循环JSON

    using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary ...

  7. android学习日记15--WebView(网络视图)

    一.WebView 1.简述 WebView(网络视图)内置WebKit引擎,能加载显示网页,还支持JS,并且能够在Android平台使用AJAXWebView可以在布局中声明,也可以在Activit ...

  8. Yum本地Rpm库设置

    http://blog.csdn.net/dc_726/article/details/8497188   1 Yum对光盘的支持 查看/etc/yum.repos.d/CentOS-Media.re ...

  9. 信号之kill和raise函数

    kill函数将信号发送给进程或进程组.raise函数则允许进程向自身发送信号. #include <signal.h> int kill(pid_t pid, int signo); in ...

  10. 分布式应用处理方式 - Remoting

    分布式应用程序 所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果. ...