利用Service实现简单的音乐播放功能

1、本例利用Service实现简单的音乐播放功能,下面是效果图。(点击开始播放开启服务,音乐播放,点击“停止播放”关闭服务,音乐停止播放。)

2、核心代码:

MusicService.java:

package thonlon.example.cn.servicedemo;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.IBinder;

import java.io.IOException;

/**
* 绑定服务的时候被调用
*/
public class MusicService extends Service {
private MediaPlayer mediaPlayer;

@Override
public IBinder onBind(Intent intent) {
return null;
}

/**
* Service被创建后被调用
*/
@Override
public void onCreate() {
// 播放本地资源的音乐
// mediaPlayer = MediaPlayer.create(this, R.raw.snh);
// 播放文件系统的音乐
// File file = new File(Environment.getExternalStorageDirectory(), "zshyn.mp3");
// mediaPlayer = new MediaPlayer();
// try {
// mediaPlayer.setDataSource(file.getAbsolutePath());//通过获取绝对路径来设置播放源头
// } catch (IOException e) {
// e.printStackTrace();

// 播放网络中的音乐
mediaPlayer = new MediaPlayer();
Uri uri = Uri.parse("http://www.nxl123.cn/snh.mp3");
try {
mediaPlayer.setDataSource(this, uri);//或者直接mediaPlayer.setDataSource("http://www.nxl123.cn/snh.mp3");
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* Service被开始后调用
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mediaPlayer.prepareAsync();//准备资源,可能阻塞主线程,所以要在子线程调用。在这里使用prepareAsync函数就可以了
//防止资源还没有准备完毕就播放音乐,所以要设置准备资源监听器
//表示当准备资源完成后,调用监听器中onPrepare方法
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();//开始播放音乐
}
});
//MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。
return super.onStartCommand(intent, flags, startId);
}

/**
* Service被停止后调用
*/
@Override
public void onDestroy() {
mediaPlayer.stop();//停止播放
mediaPlayer.release();//释放准备的资源,如果还需要用到此对象则可先不销毁
}
}

MainActivity.java:

package thonlon.example.cn.servicedemo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(this, MusicService.class);
switch (v.getId()) {
case R.id.btn_start_service:
startService(intent);
break;
case R.id.btn_stop_service:
stopService(intent);
break;
}
}
}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现一个简单音乐播放器和登录注册的功能需要以下步骤: 1. 设计UI界面,包括登录和注册页面以及音乐播放器页面。 2. 创建数据库并设计用户表,用于存储用户信息。 3. 编写登录和注册的逻辑代码。 4. 编写音乐播放器的逻辑代码,并实现播放、暂停、停止等功能。 5. 将音乐播放器封装成Service,并在Activity中调用Service。 下面是一个简单实现过程: 1. 设计UI界面 首先需要创建一个新的Android Studio项目,然后在res/layout文件夹下创建三个布局文件:activity_login.xml、activity_register.xml和activity_player.xml。这三个布局文件分别对应登录、注册和音乐播放器页面。 2. 创建数据库并设计用户表 在Android Studio中创建一个新的Java类,用于实现数据库的创建和用户表的设计。在该类中定义一个内部类,用于存储用户信息。在该类中实现以下方法: - onCreate()方法:用于创建数据库和用户表。 - addUserInfo()方法:用于向用户表中添加用户信息。 - queryUserInfo()方法:用于查询用户信息。 3. 编写登录和注册的逻辑代码 在登录和注册Activity中,分别编写逻辑代码。在登录Activity中,需要验证用户输入的用户名和密码是否正确,并跳转到音乐播放器页面。在注册Activity中,需要获取用户输入的用户名和密码,并将其存储到数据库中。 4. 编写音乐播放器的逻辑代码 在音乐播放器Activity中,需要实现以下功能: - 初始化MediaPlayer对象。 - 实现播放、暂停、停止等功能。 - 实现音乐播放器的前后台切换。 5. 将音乐播放器封装成Service音乐播放Service中,需要实现以下功能: - 初始化MediaPlayer对象。 - 实现播放、暂停、停止等功能。 - 将音乐播放器的前后台切换功能封装成方法。 在Activity中,通过bindService()方法绑定Service,然后通过ServiceConnection接口获取Service实例,从而调用Service中封装的方法。 以上是一个简单实现过程,具体实现细节还需要根据具体需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值