Android背景音乐的实现

本次试验要求实现一个背景音乐的功能,可以在UI上控制播放。
Local Service 用于应用程序内部。在Service可以调用Context.startService()启动,调用Context.stopService()结束。在内部可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。无论调用了多少次startService(),都只需调用一次stopService()来停止。
项目截图
UI

<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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@drawable/a"
    tools:context="cn.edu.bzu.MainActivity" >

    <Button
        android:id="@+id/btnPlay"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/btnPause"
        android:layout_alignParentTop="true"
        android:layout_marginTop="19dp"
        android:text="开始" />

    <Button
        android:id="@+id/btnPause"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnPlay"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:text="暂停" />

    <Button
        android:id="@+id/btnStop"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/btnPause"
        android:layout_below="@+id/btnPause"
        android:layout_marginTop="26dp"
        android:text="停止" />

</RelativeLayout>

主要代码实现

package cn.org.bzu;  
import android.app.Activity;           
import android.media.AudioManager;       
import android.media.MediaPlayer;      
import android.os.Bundle;               
import android.view.View;               
import android.widget.Button;           
import android.widget.Toast;  

public class MyActivity extends Activity {  

    private Button btnPlay;                   
    private Button btnPause;                  
    private Button btnStop;                   
    private boolean pauseFlag=false;       
    MediaPlayer mp=new MediaPlayer();                         
    AudioManager am;                       
    @Override  
    public void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);   
        findId();
        am=(AudioManager)this.getSystemService
        (this.AUDIO_SERVICE);  
        btnPlay.setOnClickListener(new View.OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                 try{  
          mp.setDataSource("/sdcard/dl.mid");   //加载音频 
                    }catch(Exception e)
                    {e.printStackTrace();}  
                    try{  
                        mp.prepare();                             
                    }catch(Exception e){
                       e.printStackTrace();
                       }  
                mp.start();   
                 //播放音乐  
                Toast.makeText(MyActivity.this, "播放音乐", Toast.LENGTH_SHORT).show();  
        }});  
        btnPause.setOnClickListener(new View.OnClickListener() { 

         //暂停按钮添加监听器  
            public void onClick(View v) {  
                if(mp.isPlaying()){                             
                    mp.pause();                                   
                    pauseFlag=true;                             
                }else if(pauseFlag){  
                    mp.start();                                 
                    pauseFlag=false;                              
                Toast.makeText(MyActivity.this, "暂停播放", Toast.LENGTH_SHORT).show();   
            }}  
        });  
           //停止按钮添加监听器 
            public void onClick(View v) {  
                mp.stop();                                      
                 mp.reset();                                    
                 try{  
                mp.setDataSource("/sdcard/dl.mid");  //加载音频,
                 }catch(Exception e){e.printStackTrace();}  
                    try{  
                      mp.prepare();   //进入prepared状态。  
                    }catch(Exception e){
                    e.printStackTrace();}  
                    Toast.makeText(MyActivity.this, "停止播放", Toast.LENGTH_SHORT).show();  
        }});  
    }  

    public void findId(){
        btnPlay=(Button)findViewById(R.id.btnPlay);    
        btnPause=(Button)findViewById(R.id.btnPause);  
        btnStop=(Button)findViewById(R.id.btnStop);   }
}  

运行效果如下:运行效果图

本次试验到此结束,谢谢。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=d017xtyerbt4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值