Android 全局背景音乐

本文介绍了如何在Android应用中实现全局背景音乐功能。通过创建设置界面的XML布局文件和对应的Java活动,使用SwitchPreference控件来切换音乐开关。在自定义的Java类中,继承MediaPlayer以实现音乐的播放和停止,并在主界面的生命周期方法中调用这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先写一个设置界面xml文件

《?xml version=”1.0” encoding=”utf-8”?》 
《PreferenceScreen xmlns:Android=”http://schemas.android.com/apk/res/android”》 
//这个是xml中给它设置的key 必须要一致 
《SwitchPreference 
android:title=”背景音乐” 
android:summaryOff=”已关闭” 
android:summaryOn=”已开启” 
android:key=”music” 
android:icon=”@drawable/sound” 
android:defaultValue=”true” > 

然后给xml配置Java文件(要展示就必须有Java文件) 
因为是设置界面 所以需要继承 PreferenceActivity

package com.example.android_studio_first_module; 
import android.content.Context; 
import android.os.Bundle; 
import android.preference.Preference; 
import android.preference.PreferenceActivity; 
import android.preference.PreferenceManager; 
import android.preference.PreferenceScreen; 
import android.preference.SwitchPreference; 
import android.support.annotation.Nullable; 
import android.widget.Toast; 
/Created by Administrator on 2017/6/27 0027. */ 
public class jinting_Sound extends PreferenceActivity{ 
//这个是xml中给它设置的key 必须要一致 
private static final String MUSIC = “music”; 
private static final boolean MUSIC_DEF = true; 
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); 
//重点 addPreferencesFromResource(R.xml.setting); 

//获得当前音乐的值 public static boolean getMusic(Context context) { 
return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(MUSIC, MUSIC_DEF); }}

//我们自定义一个Java文件 
//继承用来播放音乐的类 
package com.example.android_studio_first_module; 
import android.content.Context; 
import android.media.MediaPlayer; 
public class Music {

private static MediaPlayer mp = null; //停止旧歌曲,开始新歌曲

public static void play(Context context, int resource) { 
stop(context); 
if(jinting_Sound.getMusic(context)) { 
mp = MediaPlayer.create(context, resource); 
mp.setLooping(true); 
mp.start(); } }

//停止音乐 
public static void stop(Context context) { 
if(mp!=null) { 
mp.stop(); 
mp.release(); 
mp = null; } }}

//最后在主界面中调用就可以了 
//生命周期 
//这个要写一个raw文件 里面是音乐 
//必须为MP3格式的 音乐名字必须为英文 
@Override 
protected void onResume() { 
super.onResume(); 
Music.play(this,R.raw.abc); }

@Override 
protected void onDestroy() { 
super.onDestroy(); 
Music.stop(this); 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值