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="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.chenshuai.myapplication.ActivityMusic"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="40sp"
        android:text="播放状态"
        android:textSize="20sp"
        android:gravity="center_horizontal"
        android:id="@+id/tv_1"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="播放"
            android:onClick="play_onclick"/>
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="暂停"
            android:onClick="pause_onclick"/>
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="停止"
            android:onClick="stop_onclick"/>
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="退出"
            android:onClick="exit_onclick"/>
    </LinearLayout>

</LinearLayout>

java

package com.example.chenshuai.myapplication;

import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class ActivityMusic extends AppCompatActivity {

    TextView tv_1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity_music);

        tv_1 = (TextView)findViewById(R.id.tv_1);

        tv_1.setText("播放状态:停止播放。。。");
    }

    //媒体播放器 定义成员变量
    private MediaPlayer mediaPlayer;
    public void play_onclick(View view)
    {
        if (mediaPlayer == null) {
            //调用MediaPlayer的静态方法create
            mediaPlayer = MediaPlayer.create(this, R.raw.tangren);
        }

        mediaPlayer.start();

        tv_1.setText("播放状态:正在播放。。。");
    }

    public void stop_onclick(View view)
    {
        if (mediaPlayer != null) {
            mediaPlayer.stop();//停止
            mediaPlayer.reset();//重置
            mediaPlayer.release();//释放资源
            mediaPlayer = null;//重新赋值为空
        }
        tv_1.setText("播放状态:停止播放。。。");
    }
    public void pause_onclick(View view)
    {
        if (mediaPlayer != null && mediaPlayer.isPlaying())
        {
            mediaPlayer.pause();

            tv_1.setText("播放状态:暂停播放。。。");
        }
    }
    public void exit_onclick(View view)
    {
        stop_onclick(view);
        finish();
    }
}

效果:

二、用Service实现

同一个xml

ActivityMusicservice.java
package com.example.chenshuai.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class ActivityMusicservice extends AppCompatActivity {

    TextView tv_1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity_music);

        tv_1 = (TextView)findViewById(R.id.tv_1);

        tv_1.setText("播放状态11:停止播放。。。");
    }
    public void play_onclick(View view)
    {
        Intent intent = new Intent(this,MyServiceMusic.class);

        intent.putExtra("action","play");

        startService(intent);

        tv_1.setText("播放状态11:正在播放。。。");
    }

    public void stop_onclick(View view)
    {
        Intent intent = new Intent(this,MyServiceMusic.class);

        intent.putExtra("action","stop");

        startService(intent);

        tv_1.setText("播放状态11:停止播放。。。");
    }
    public void pause_onclick(View view)
    {
        Intent intent = new Intent(this,MyServiceMusic.class);

        intent.putExtra("action","pause");

        startService(intent);

        tv_1.setText("播放状态11:暂停播放。。。");
    }
    public void exit_onclick(View view)
    {
        stop_onclick(view);
        finish();
    }
}
MyServiceMusic.java
package com.example.chenshuai.myapplication;

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

public class MyServiceMusic extends Service {
    public MyServiceMusic() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }
    private MediaPlayer mediaPlayer;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        //获取意图传递的信息
        String action = intent.getStringExtra("action");

        switch (action)
        {
            case "play":
                if (mediaPlayer == null)
                {
                    mediaPlayer = MediaPlayer.create(this,R.raw.onceagain);
                }
                mediaPlayer.start();

                break;
            case "stop":
                if (mediaPlayer !=null)
                {
                    mediaPlayer.stop();
                    mediaPlayer.reset();
                    mediaPlayer.release();
                    mediaPlayer = null;
                }
                break;
            case "pause":
                if (mediaPlayer !=null && mediaPlayer.isPlaying())
                {
                    mediaPlayer.pause();
                }
                break;
        }
        return super.onStartCommand(intent, flags, startId);
    }
}

效果:

时间: 2024-08-02 02:39:52

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

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

使用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

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

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

Android开发之startService和onBinderService混合开发音乐播放器

一.首先你需要知道MediaPlayer这个类的一些方法: int getDuration():获取流媒体的总播放时长,单位是毫秒. int getCurrentPosition():获取当前流媒体的播放的位置,单位是毫秒. void seekTo(int msec):设置当前MediaPlayer的播放位置,单位是毫秒. void setLooping(boolean looping):设置是否循环播放. boolean isLooping():判断是否循环播放. boolean  isPla

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

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

Android课程---简单的音乐播放器

第一个:用Activity实现 activity_music_play1.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" androi

使用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: