使用service实现一个简单的音乐播放器

效果

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:gravity="center_horizontal"
        >

    <Button
            android:id="@+id/stop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="停止"
            android:onClick="stopOnClick"
            />
    <Button
            android:id="@+id/play"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="播放"
            android:onClick="playOnClick"

            />
    <Button
            android:id="@+id/pause"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="暂停"
            android:onClick="pauseOnClick"

            />
</LinearLayout>

service子类书写

package com.startservicedemo;

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

/**
 * Created by IntelliJ IDEA
 * Project: com.startservicedemo
 * Author: 安诺爱成长
 * Email: [email protected]
 * Date: 2015/5/13
 */
public class PlayService extends Service {

    private MediaPlayer player;

    @Override
    public void onCreate() {
        super.onCreate();
        player = MediaPlayer.create(this, R.raw.ai);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        int control = intent.getIntExtra("control", -1);
        switch (control) {
            case 0:
                player.start();
                break;
            case 1:
                player.stop();
                break;
            case 2:
                player.pause();
                break;
        }
        return super.onStartCommand(intent, flags, startId);
    }

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

    @Override
    public void onDestroy() {
        player.stop();
        player.release();
        player = null;
        super.onDestroy();
    }
}

activity书写

package com.startservicedemo;

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

public class MainActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button stopButton = (Button) findViewById(R.id.stop);
        Button playButton = (Button) findViewById(R.id.play);
        Button pauseButton = (Button) findViewById(R.id.pause);
        //启动服务
        Intent intent = new Intent(this, PlayService.class);
        startService(intent);
    }

    @Override
    protected void onStop() {
        //停止startservice启动的服务
        Intent intent = new Intent(this, PlayService.class);
        stopService(intent);
        super.onStop();
    }

    //停止播放监听方法
    public void stopOnClick(View view) {
        Intent intent = new Intent(this, PlayService.class);
        intent.putExtra("control", 1);
        startService(intent);
    }

    //暂停播放监听方法
    public void pauseOnClick(View view) {
        Intent intent = new Intent(this, PlayService.class);
        intent.putExtra("control", 2);
        startService(intent);
    }

    //停止播放监听方法
    public void playOnClick(View view) {
        Intent intent = new Intent(this, PlayService.class);
        intent.putExtra("control", 0);
        startService(intent);
    }
}
时间: 2024-11-20 14:05:00

使用service实现一个简单的音乐播放器的相关文章

使用Service组件实现简单的音乐播放器功能 --Android基础

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

使用绑定服务实现一个简单的音乐播放器

效果 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:

Android 多媒体开发学习之简单的音乐播放器

我们今天的目的是学习如何创建一个简单的音乐播放器,可支持播放,暂停,继续播放,以及进度显示,已经进度拖拽. 既然我们的目的已经很明确,那我们先分析一下: 1: 我们播放音乐的任务可以放在Activity中吗? 假设我们当前音乐播放,我们切到别的应用,这时候播放音乐的Activity所在的进程就属于后台进程,因为后台进程会由于系统资源不足时,会杀死当前进程,会导致音乐不播放了.所以采用Activity是不行的. 2:播放音乐的任务放在一个服务中,那服务有2中启动方式,应该使用那种服务? a:如果采

用H5+Boostrap做简单的音乐播放器

用H5+Boostrap做简单的音乐播放器 前言:这个是综合一下我最近在学的东西做的小Demo,到实际使用还有距离,但是用来练手巩固知识点还是不错的,最近在二刷JS书和Boostrap.css的源码,做完这个Demo也算是暂告一段落,接下来是jQuery的源码和Boostrap.js的源码,任务很艰巨呢,加油~在此就不整篇的贴代码了,如果感兴趣的小伙伴可以发消息给我,可以把代码传给你们~ 正文: 先上效果图 1.布局:Boostrap里的响应式和自适应布局是自然跑不掉的,container中嵌套

简单本地音乐播放器

// //  ViewController.m //  AudioPlayer // //  Created by apple on 14-7-18. //  Copyright (c) 2014年 苹果IOS软件开发者. All rights reserved. // #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController ()<AVAudi

用PHP+H5+Boostrap做简单的音乐播放器(进阶版)

前言:之前做了一个音乐播放器(纯前端),意外的受欢迎,然后有人建议我把后台一起做了,正好也想学习后台,所以学了两天php(不要吐槽我的速度,慢工出细活嘛~)然后在之前的基础上也又完善了一些功能,所以这个Demo比之前的可以算是进阶呢~v2.0哈哈哈~感觉截图体验很不好呢,所以在美图秀秀上面做了简易的动图,大家感受感受 正文: 老规矩,先上图~感觉有点卡,愿意等的就等等嘛,不愿意等的,往下看,有图片讲解 功能实现: 1.点击音乐列表播放音乐 2.拖动或点击进度条,调节音乐播放进度 3.浮动到音量控

新手作品~~~简单版音乐播放器

为了完成别人交给的小任务,作为一个新手看了很多的视频教程,实在是难死宝宝了,好在终于找到一篇合适我的布局的关于音乐播放器布局的文章,所以用了两天,就照猫画虎的学了下来,为了完全适配我的布局文件,删删减减,查了很多资料....才算是搞出个基本样子,废话不多说,直接上代码和效果图,新人作品,不喜勿喷. 功能很简单: 1.扫描sd卡内的音乐文件,将扫描到的音乐文件加载到音乐列表中. 2.点击音乐列表,实现播放音乐的功能 3.点击播放控制按钮(播放/暂停 上/下一曲)实现相关功能 首先是三个Java文件

如何写一个正经的音乐播放器 四 意外情况

四,意外情况的控制. 在音频播放时候,容易遇到一些意外情况,这时候,我们就要处理这些意外情况,这时候,我们需要针对不同的意外情况进行处理.大概可以分成两种情况. 1,失去audio_focus的控制. 造成我们的播放器失去焦点的情况很多,主要是其他声音请求了焦点,例如说,其他音乐播放器开始播放音乐,突然来电,短息等. 以上的焦点失去,都可以用AudioManager.OnAudioFocusChangeListener中的回调来处理.先取得AudioManager AudioManager au

Android——用Activity和Service实现简单的音乐播放器

一.只用Activity xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="mat