本次试验要求实现一个背景音乐的功能,可以在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