Android项目:音乐播放器

一、需求分析

综合运用UI界面设计、Sqlite数据存储、Activity(活动)、Service(服务)、MusicPlayer(音乐播放类)、ListView(列表)、GridView(网格列表)、Fragment(碎片)、BaseAdapter(适配器)等知识,设计开发一款具有音乐列表的音乐播放器。

二、设计分析

下面展示的是所有代码文件
在这里插入图片描述

三、资源文件分析

本项目的所有音乐文件都是存放在本地的,没有用服务器,当然也可以用。音乐文件存放在res文件夹下的raw文件夹中,图片资源存放在drawable和mipmap文件夹下,控件样式也是放在drawable中,颜色定义在values下的colors中。

四、开发环境

环境项参数
JDK1.8
Android版本10.0
Android API29

五、登录页面

首先是系统登录界面,用户安装app启动后最先看到的界面,需要使用正确的用户名和密码才能进入播放器,再该页面可以选择是否记住密码和自动登录,如果只是选择记住密码,退出应用后再次进入账号密码将会保存,但是不会自动登录,如果勾选了自动登录,会根据保存的账号密码自动登录,下次启动会直接跳过登录并且提示已经自动登录。
网抑云app登陆界面

六、注册页面

用户通过点击登录界面的“还没注册?点击这里试试”跳转到用户注册界面,两次输入的密码需一样且用户名和密码都不能为空才能注册成功,注册成功后使用注册好的账号密码登录系统就可以使用播放器。
在这里插入图片描述

七、音乐播放器主页面

用户首次登录会提示是否授权网抑云app获取存储权限,获取权限后app会自动扫描手机内的音频文件并且返回到主界面的音频列表,用户点击就可以开始听歌了,主界面还有暂停播放、停止播放、下一首歌曲和上一首歌曲,可以调节手机音量,滑动播放进度条。
在这里插入图片描述

八、音乐播放器菜单栏

点击右上方进入到右上方菜单栏,一共有6个功能,分别是主题、播放模式、睡眠设置、关于、退出、退出登录
在这里插入图片描述

九、音乐播放器设置主题

点击右上角菜单栏中的主题出现主题弹窗,在弹窗中选择主题,会自动为播放器切换相应的背景图片。
在这里插入图片描述

十、音乐播放器播放模式

点击右上角菜单栏中的播放模式,弹出选择播放模式界面,共有四种模式选择,分别是顺序播放、单曲循环、列表循环、随机播放。
在这里插入图片描述

十一、音乐播放器睡眠设置

点击右上角菜单栏中的睡眠设置,弹出睡眠设置选项,滑动进度条选择对应的时间,点击打开开关,点击确定就设置好睡眠时间,到时间后应用会自动关闭。
在这里插入图片描述

十二、音乐播放器查看歌词

点击右上角菜单栏中的歌词下载或者滑动超过300像素点,跳转到歌词界面,会自动前往歌迷网查询当前正在播放的歌曲的歌词,有结果就返回歌词,没有结果就显示没有歌词。
在这里插入图片描述

十三、部分代码

扫描手机内音频文件初始化音乐列表的关键代码
在这里插入图片描述
登录页面记住密码,部分代码
在这里插入图片描述
睡眠模式设置的关键实现代码
在这里插入图片描述
给出完整的activity_musicplayer.xml代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/relativeLayout1"
    android:background="@drawable/bg_snow">

    <ListView   android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@drawable/widget_bg"
        android:layout_above="@+id/linearLayout1"
        android:layout_margin="6dp"
        />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/widget_bg"
        android:gravity="center"
        android:orientation="vertical"
        android:layout_margin="6dp">

        <SeekBar
            android:id="@+id/seekBar1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <RelativeLayout
            android:id="@+id/relativeLayout2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:text="00:00"
                android:textColor="#4e4c4c" />
            <ImageView
                android:id="@+id/main_sleep"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="5dp"
                android:layout_toRightOf="@+id/textView1"
                android:background="@drawable/sleep_timer"
                android:src="@drawable/sleep_timer"/>
            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:text="00:00"
                android:textColor="#4e4c4c" />
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ellipsize="marquee"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:marqueeRepeatLimit="marquee_forever"
                    android:text="未在播放"
                    android:textColor="#000"
                    android:textAlignment="center"/>

                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ellipsize="marquee"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:marqueeRepeatLimit="marquee_forever"
                    android:text=""
                    android:textColor="#2196F3"
                    android:textAlignment="center"/>
                <LinearLayout
                    android:id="@+id/volumeLayout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:gravity="center"
                    >
                    <ImageView
                    android:layout_width="12dp"
                    android:layout_height="12dp"
                    android:id="@+id/slience"
                    android:background="@drawable/slience"
                    />

                    <SeekBar
                        android:id="@+id/volumeBar"
                        android:layout_width="266dp"
                        android:layout_height="wrap_content" />
                    <ImageView
                        android:layout_width="15dp"
                        android:layout_height="17dp"
                        android:id="@+id/voicemax"
                        android:background="@drawable/voicemax"
                        />
                </LinearLayout>
            </LinearLayout>
        </RelativeLayout>

        <LinearLayout
            android:id="@+id/linearLayout2"
            android:layout_width="340dp"
            android:layout_height="wrap_content"
            android:gravity="center">

            <ImageButton
                android:id="@+id/imageButton1"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_margin="10dp"
                android:background="@drawable/button_previous" />

            <ImageButton
                android:id="@+id/imageButton2"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_margin="10dp"
                android:background="@drawable/button_play" />

            <ImageButton
                android:id="@+id/imageButton3"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_margin="10dp"
                android:background="@drawable/button_stop" />

            <ImageButton
                android:id="@+id/imageButton4"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_margin="10dp"
                android:background="@drawable/button_next" />
        </LinearLayout>

    </LinearLayout>
</RelativeLayout>

十四、小结

源码获取,请直接私信我。

  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
好的,下面为您介绍一下Android开发简易音乐播放器的步骤。 1. 创建一个新的Android项目,并添加一个音乐文件到项目中。 2. 在XML布局文件中添加一个MediaController和一个VideoView组件来控制和播放音乐文件。 ``` <RelativeLayout 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"> <VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/mediaController" /> <MediaController android:id="@+id/mediaController" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentStart="true" android:layout_marginBottom="0dp" android:layout_marginTop="0dp" android:layout_gravity="bottom" android:layout_alignParentLeft="true" /> </RelativeLayout> ``` 3. 在Activity中找到VideoView和MediaController的引用,并设置MediaController的操作。 ``` public class MainActivity extends AppCompatActivity { private VideoView videoView; private MediaController mediaController; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); videoView = (VideoView) findViewById(R.id.videoView); mediaController = new MediaController(this); mediaController.setAnchorView(videoView); videoView.setMediaController(mediaController); videoView.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.song); } } ``` 4. 运行程序,即可播放音乐文件。 以上就是Android开发简易音乐播放器的全部步骤,希望对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值