android后台音乐,Android基于service实现音乐的后台播放功能示例

本文实例讲述了Android基于service实现音乐的后台播放功能。分享给大家供大家参考,具体如下:

Service是一个生命周期长且没有用户界面的程序,当程序在各个activity中切换的时候,我们可以利用service来实现背景音乐的播放,即使当程序退出到后台的时候,音乐依然在播放。下面我们给出具体例子的实现:

当然,首先要在资源文件夹中添加一首MP3歌曲:

a42643d92693f87bb97e3f5ede71cd88.png

要实现音乐的播放,需要在界面中放置两个按钮,用来控制音乐的播放和停止,通过使用startService和stopService来实现这两个功能:

e073c90e48bb18ff427d0ee5e2d07046.png

修改src下的ServiceDemoAvtivity.Java代码添加如下按钮事件的代码:

Button start = (Button)findViewById(R.id.start);

Button stop = (Button)findViewById(R.id.stop);

Button.OnClickListener listener = new Button.OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intent = new Intent(getApplicationContext(),MusicService.class);

switch(v.getId()){

case R.id.start: startService(intent);break;

case R.id.stop: stopService(intent);break;

}

}

};

start.setOnClickListener(listener);

stop.setOnClickListener(listener);

下面是更为重要的service部分。创建一个MusicService继承于Service,然后通过start和stop方法来控制音乐的播放。下面是MusicService.java中的关键代码:

public void onStart(Intent intent, int startId) {

// TODO Auto-generated method stub

super.onStart(intent, startId);

Toast.makeText(this, "onStart", Toast.LENGTH_LONG).show();

player = MediaPlayer.create(this, R.raw.eason);

player.setLooping(true);

player.start();

}

public void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

Toast.makeText(this, "onDestroy", Toast.LENGTH_LONG).show();

player.stop();

}

当然还需要在AndroidMainfest中声明MusicService:

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

android:name=".ServiceDemoActivity"

android:label="@string/app_name" >

整个例子就构造完成了,部署到模拟器或者手机上就可以实现后台播放啦。

希望本文所述对大家Android程序设计有所帮助。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Service可以用来实现音乐播放功能。具体实现步骤如下: 1. 创建一个Service类,继承自Service类。 2. 在Service类中创建一个MediaPlayer对象,用于播放音乐。 3. 在Service类中实现onStartCommand()方法,用于启动Service并开始播放音乐。 4. 在Service类中实现onDestroy()方法,用于停止音乐播放并释放MediaPlayer对象。 5. 在Activity中通过startService()方法启动Service,并通过bindService()方法绑定Service。 6. 在Activity中通过ServiceConnection接口获取Service实例,并调用Service中的方法控制音乐播放。 以上就是Android Service实现音乐播放的基本步骤。需要注意的是,在Service播放音乐时需要使用异步线程,避免阻塞主线程。同时,需要在AndroidManifest.xml文件中声明Service。 ### 回答2: Android中有多种方式实现音乐播放,其中最常见的方法就是通过Service实现ServiceAndroid中的一个基本组件,可以在后台执行长时间运行的任务,不与用户界面直接交互。音乐播放器需要在后台持续运行,而不影响用户的交互,因此非常适合使用Service实现。 在实现音乐播放Service中,我们需要完成以下步骤: 1. 创建一个Service类,继承自Android中的Service类。 2. 在Service类中创建一个MediaPlayer对象,这是实现音乐播放的关键。 3. 在onCreate()方法中初始化MediaPlayer对象,并将待播放的音频文件传给它。 4. 在Service类中创建一个IBinder对象,用于将Service类与Activity类进行交互。 5. 在onStartCommand()方法中开始音乐播放,并接收Activity传来的指令,如暂停、停止等操作。 6. 在onDestroy()方法中释放MediaPlayer对象,停止音乐播放。 7. 在Activity类中通过ServiceConnection接口获取Service对象的引用,并调用Service类中的方法实现音乐播放的控制。 通过以上步骤,我们就可以顺利地实现一个Android音乐播放器。当然,在实际开发中还需要考虑到音乐播放的异常情况处理、状态栏通知等细节问题。此外,我们还可以通过广播接收器来实现音乐播放完成的通知,以便及时更新UI界面。总之,通过Service实现音乐播放Android开发中的重要知识点,需要多加练习。 ### 回答3: Android ServiceAndroid 架构中的一个重要组件,能够在后台运行。它被用来执行长时间运行的任务,比如下载数据、音乐播放等,而不会影响用户正在使用的应用程序。 在实现音乐播放的时候,可以使用 Android Service,这样可以让用户在使用其他应用程序的同时,继续听着音乐。下面就是如何使用 Android Service 实现音乐播放的步骤: 1. 引入音乐播放所需的用户权限 在 AndroidManifest.xml 文件中引入以下用户权限: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> 其中,READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限用来访问设备存储,WAKE_LOCK 权限是用来唤醒屏幕的。 2. 创建 Service 类 在 Android 项目的主包中创建 Service 类。Service 是一种后台运行的组件,不会与用户界面交互。在 onCreate() 方法中初始化 MediaPlayer 类,实现音乐播放。 例如: public class MusicService extends Service implements MediaPlayer.OnPreparedListener { private MediaPlayer mediaPlayer; @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { mediaPlayer = new MediaPlayer(); mediaPlayer.setOnPreparedListener(this); return super.onStartCommand(intent, flags, startId); } @Override public void onPrepared(MediaPlayer mp) { mp.start(); } } 3. 实现音乐播放器的逻辑代码 在 Activity 中编写逻辑代码来使用 Service。使用 Intent 启动 Service,将要播放音乐文件路径传递给 Service,并调用 prepareAsync() 方法来异步准备音乐播放器。 例如: public class MainActivity extends AppCompatActivity { private final String music_path = "/sdcard/music/music.mp3"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = new Intent(this, MusicService.class); intent.putExtra("music_path", music_path); startService(intent); } } 在 Service 中处理传递过来的音乐文件路径,然后调用 prepareAsync() 方法异步准备播放器。当音乐准备好后,回调 onPrepared() 方法就可以启动播放器了。 例如: public class MusicService extends Service implements MediaPlayer.OnPreparedListener { private MediaPlayer mediaPlayer; @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { String music_path = intent.getStringExtra("music_path"); mediaPlayer = new MediaPlayer(); try { mediaPlayer.setDataSource(music_path); mediaPlayer.setOnPreparedListener(this); mediaPlayer.prepareAsync(); } catch (IOException e) { e.printStackTrace(); } return super.onStartCommand(intent, flags, startId); } @Override public void onPrepared(MediaPlayer mp) { mp.start(); } } 实现了以上三步,就可以非常简单地实现音乐播放了。值得注意的是,服务在调用 stopService() 方法停止时,需要在 onDestroy() 方法中处理 mediaPlayer.stop()、mediaPlayer.release() 以及 mediaPlayer= null 来释放资源。 以上就是使用 Android Service 实现音乐播放的步骤。在实际开发中,还需要根据需求进行适当的改动和完善,比如增加音量、暂停/继续播放、重复播放功能

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值