android基础---背景音乐实现

来源:互联网 发布:任志强反党 知乎 编辑:程序博客网 时间:2024/05/16 16:16

1.背景音乐在menu中设置:

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.echo.sb.MainActivity" >
    <item
        android:id="@+id/action_settings"
        android:title="设置音乐开关"/>
</menu>

2.使用到sharedPreference:在res中的xml目录下

preference.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <CheckBoxPreference
        android:key="music"
        android:title="播放背景音乐"
        android:summary="play or stop"
        android:defaultValue="true"
        />
</PreferenceScreen>

3.存放音乐在指定的文件夹下:res中的raw目录下

4.需要一个音乐播放的实体类,控制音乐的播放:

Music.java

public class Music {

private static  MediaPlayer m;

public static void play(Context context,int resource){
stop(context);
if(Preference.getmusic(context)){
m=MediaPlayer.create(context, resource);
m.setLooping(true);
m.start();
}
}
public static void stop(Context context){
if(m!=null&&m.isPlaying()){
m.stop();
m.release();
m=null;
}
}
}

5.对sharedPreference中的设置进行设置:

Preference.java

public class Preference extends PreferenceActivity {
private static final String OPEN_MUSIC="music";
private static final boolean DEFAULT_MUSIC=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference);
}

public static boolean getmusic(Context context){
return PreferenceManager.getDefaultSharedPreferences(context).
getBoolean(OPEN_MUSIC, DEFAULT_MUSIC);
}
}

6.最后一步,在MainActivity中实现背景音乐的播放:

MainActivity.java

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.action_settings:
Intent intent=new Intent(MainActivity.this, Preference.class);
startActivity(intent);
break;
default:
break;
}
return true;
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Music.stop(this);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Music.play(MainActivity.this, R.raw.test);
}
}

这样一个项目的背景音乐就设置好了~~~



0 0