项目——音乐播放

音乐播放


服务service:
1.特点:
①service不能够自动运行需要通过对象来调用
开启服务:startService()
关闭服务:stopService()
②service没有界面,不用添加布局,在后台运行Android的组件
2.生命周期:
onCreate():服务对象被创建的时候用这个方法,初始化服务
onStartCommand():开启服务的时候调用这个方法
onDestroy():服务对象被销毁的时候使用这个方法,做扫尾的工作
3.清单文件注册

4.创建音频
MediaPlayer mp = MediaPlayer.create(MyMusic.this, R.raw.song1);
5.service注意事项:
①第一次启动服务的时候,会创建一个服务对象调用方法呢oncreat()
②服务只能创建(onCreate)一次,但是可以开启(onStartCommand)多次。
③停止服务调用onDestroy,只能一次。

简单步骤:
1.创建图形界面
2.复制文件
3.创建音乐类
4.获取点击事件
5.创建意图
6.开启服务
7.服务周期
8.仅供参考

页面布局

<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity" >
    <Button 
    android:id="@+id/bt1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="开启音乐"/>
    <Button 
    android:id="@+id/bt2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="关闭音乐"/>


</LinearLayout>

这里写图片描述

java代码

package com.yybo;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //导入布局
        setContentView(R.layout.activity_main);
        //获取控件
        Button bt1 = (Button)findViewById(R.id.bt1);
        Button bt2 = (Button)findViewById(R.id.bt2);
        //指挥对象做事情
        bt1.setOnClickListener(new OnClickListener() {
            /*开启音乐*/
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //创建意图
                Intent intent = new Intent();
                //跳转页面
                intent.setClass(MainActivity.this, MyMusic.class);
                //开启服务
                startService(intent);
            }
        });
        bt2.setOnClickListener(new OnClickListener() {
            /*关闭音乐*/
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //创建意图
                Intent intent = new Intent();
                //跳转页面
                intent.setClass(MainActivity.this, MyMusic.class);
                //开启服务
                stopService(intent);
            }
        });
    }

}

音乐类

package com.yybo;

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

public class MyMusic extends Service{
    MediaPlayer mp;
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        //插入
        mp = MediaPlayer.create(MyMusic.this, R.raw.song);
        System.out.println("dda");
        mp.start();
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        System.out.println("fff");
        mp.stop();
    }

}

注意:在清单文件里面加入

文件复制效果图
这里写图片描述
模拟器上的效果图
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值