Android课程---简单的音乐播放器
第一个:用Activity实现
activity_music_play1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.hanqi.test2.MusicPlay1"
android:orientation="vertical"> <TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="播放状态:"
android:id="@+id/tv_1"/> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="播放"
android:onClick="play_onclick"/> <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="暂停"
android:onClick="pause_onclick"/> <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="停止"
android:onClick="stop_onclick"/> <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="退出"
android:onClick="exit_onclick"/> </LinearLayout> </LinearLayout>
MusicPlay1.java
package com.hanqi.test2; import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView; public class MusicPlay1 extends AppCompatActivity {
TextView tv_1; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_music_play1); tv_1 =(TextView)findViewById(R.id.tv_1); tv_1.setText("播放状态:停止播放"); } //媒体播放器的类
private MediaPlayer mediaPlayer; public void play_onclick(View v)
{
if (mediaPlayer == null) {
//调用MediaPlayer的静态方法create()
mediaPlayer = MediaPlayer.create(this, R.raw.love);
}
mediaPlayer.start(); tv_1.setText("播放状态:正在播放..."); }
public void stop_onclick(View v)
{
if (mediaPlayer != null) {
mediaPlayer.stop(); //停止
mediaPlayer.reset(); //重置
mediaPlayer.release(); //释放资源
mediaPlayer = null; //赋空
}
tv_1.setText("播放状态:停止播放"); }
public void pause_onclick(View v)
{
//isPlaying:状态
if (mediaPlayer != null && mediaPlayer.isPlaying())
{
mediaPlayer.pause(); tv_1.setText("播放状态:暂停播放");
}
}
public void exit_onclick(View v)
{
stop_onclick(v); finish();
}
}
效果图:

第二个:用Service实现
可以实现后台播放 不影响其他程序运行 重新进入也不会重新播放歌曲
MusicPlay2.java
package com.hanqi.test2; import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView; public class MusicPlay2 extends AppCompatActivity {
TextView tv_1; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_music_play1); tv_1 =(TextView)findViewById(R.id.tv_1); tv_1.setText("播放状态:停止播放"); } public void play_onclick(View v)
{
Intent intent = new Intent(this,MusicPlayService.class); intent.putExtra("action","play"); startService(intent); tv_1.setText("播放状态1:正在播放...");
}
public void stop_onclick(View v)
{
Intent intent = new Intent(this,MusicPlayService.class); intent.putExtra("action","stop"); startService(intent); tv_1.setText("播放状态1:停止播放");
}
public void pause_onclick(View v)
{
Intent intent = new Intent(this,MusicPlayService.class); intent.putExtra("action","pause"); startService(intent); tv_1.setText("播放状态1:暂停播放");
}
public void exit_onclick(View v)
{
stop_onclick(v); finish();
}
}
MusicPlayService.java
package com.hanqi.test2; import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder; public class MusicPlayService extends Service {
public MusicPlayService() {
} @Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
private MediaPlayer mediaPlayer; @Override
public int onStartCommand(Intent intent, int flags, int startId) { //获取意图传递的信息
String action = intent.getStringExtra("action");
switch (action)
{
case "play": if (mediaPlayer == null)
{
mediaPlayer = MediaPlayer.create(this,R.raw.love);
} mediaPlayer.start(); break; case "stop":
if (mediaPlayer != null)
{
mediaPlayer.stop();
mediaPlayer.reset();
mediaPlayer.release();
mediaPlayer = null;
}
break;
case "pause": mediaPlayer.pause();
break;
}
return super.onStartCommand(intent, flags, startId);
}
}
效果图:

Android课程---简单的音乐播放器的更多相关文章
- 简单的音乐播放器(VS 2010 + Qt 4.8.5)
昨天历经千辛万苦,配置好了VS 2010中的Qt环境(包括Qt for VS插件),今天决定浅浅地品味一下将两者结合进行编程的魅力. 上网查了一些资料,学习了一些基础知识,决定做一个简单的音乐播放器, ...
- swift3.0 简单直播和简单网络音乐播放器
本项目采用swift3.0所写,适配iOS9.0+,所有界面均采用代码布局. 第一个tab写的是简单直播,传统MVC模式,第二个tab写的是简单网络音乐播放器.传说MVVM模式(至于血统是否纯正我就不 ...
- 用PHP+H5+Boostrap做简单的音乐播放器(进阶版)
前言:之前做了一个音乐播放器(纯前端),意外的受欢迎,然后有人建议我把后台一起做了,正好也想学习后台,所以学了两天php(不要吐槽我的速度,慢工出细活嘛~)然后在之前的基础上也又完善了一些功能,所以这 ...
- Android基于发展Service音乐播放器
这是一个基于Service组件的音乐播放器,程序的音乐将会由后台的Service组件负责播放,当后台的播放状态改变时,程序将会通过发送广播通知前台Activity更新界面:当用户单击前台Activit ...
- 项目源码--Android类似酷狗音乐播放器
下载源码 知识技能概要: 1.音乐文件的扫描与管理 2.音频流的解码 3. UI控件的综合使用 4.播放列表方式管理 5.随机播放方式 6.源码带详细的中文注释 ...... 详细介绍 1. 音乐文件 ...
- Android 仿百度网页音乐播放器圆形图片转圈播放效果
百度网页音乐播放器的效果 如下 : http://www.baidu.com/baidu?word=%E4%B8%80%E7%9B%B4%E5%BE%88%E5%AE%89%E9%9D%99& ...
- 使用Service组件实现简单的音乐播放器功能 --Android基础
1.本例利用Service实现简单的音乐播放功能,下面是效果图.(点击开始播放开启服务,音乐播放,点击“停止播放”关闭服务,音乐停止播放.) 2.核心代码: MusicService.java: pa ...
- Android——用Activity和Service实现简单的音乐播放器
一.只用Activity 容易出现问题 xml <?xml version="1.0" encoding="utf-8"?> <LinearL ...
- Android应用开发--MP3音乐播放器代码实现(一)
需求1:将内存卡中的MP3音乐读取出来并显示到列表当中 1. 从数据库中查询所有音乐数据,保存到List集合当中,List当中存放的是Mp3Info对象 2. 迭代List集合,把每一个Mp3 ...
随机推荐
- JavaScript通过id获取不到元素是什么原因阿?
s代码 JavaScript code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function show_more_mess() { $(&qu ...
- VS2013如何避开安装时IE10的限制
[VS2013]如何避开VS2013必须要有IE10的限制 VS就会告诉我们目前环境不适合安装VS2013,必须升级IE版本到IE10. 在不安装IE10时的时候,安装办法: 将下面一段文字,储存为. ...
- jsonp使用,spring4.x对jsonp的支持
1.Java中接口 @RequestMapping("/token/{token}") @ResponseBody public Object getUserByToken(@Pa ...
- IO(1)
java的IO主要在java.io包下,包括字节流和字符流. 1 File File类可以对文件和目录进行操作,就是不能访问文件本身,其常用方法包括: 1)String getName(),返回fil ...
- jQuery 追加元素的方法如append、prepend、before,after(转)
1.jQuery append() 方法 jQuery append() 方法在被选元素的结尾插入内容. 实例 复制代码代码如下: $("p").append("Some ...
- while 循环 。。
这是一个可以循环到天荒地老的循环: 如果while 为真就一直循环下去: count=0 while True: count+=1 if count>50 and count<60: co ...
- 转:简单窗体振动-WaitForSingleObject,消息,winapi
http://www.cnblogs.com/Jekhn/archive/2012/08/25/2656656.html 线程,消息函数,SetWindowPos设置窗体位置 if WaitForSi ...
- 转: Delphi的OverRide、OverLoad和Virtual方法
http://blog.csdn.net/ckli/article/details/2201418 override 重写 也叫覆盖 .方法的重写Overriding和重载Overloading是Ja ...
- win 文字转化为语音
mshta vbscript:createobject("sapi.spvoice").speak("hello")(window.close)
- three.js加载obj模型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...