Android 课设之个人音乐播放器

本文介绍了开发一个基于Android的个人音乐播放器的全过程,使用了SQLite数据库管理用户,MediaPlayer播放音乐,并实现了文件扫描、用户管理、权限控制等功能。主要技术包括Java、Android SDK,涉及布局设计、组件通信、数据库操作和多媒体播放。
摘要由CSDN通过智能技术生成

第一章 绪论

1.1选题背景

由于时代快速发展,各种各样的音乐播放器层出不穷,此时需要一个可以根据个人爱好来播放的音乐播放器就尤为重要,因此我特意制作了一个根据自己喜好的音乐播放器,只需要把音乐文件放进制定的目录下即可。

1.2开发技术

该App利用了SQlite数据库对于用户的管理,还有MediaPlayer媒体播放器的使用,和各种布局加以一些控件得以使界面看着舒服,还有利用了广播信息对于用户的操作进行提示。并且对于音乐文件得存储也使用了sdcard文件存储的技术,还有组件间的通信和广播信息等技术。主要使用Android,java开发。

第二章 需求及可行性分析

2.1需求分析

Android应用软件包含人机界面(控件、菜单、工具栏、对话框等)、组件通信、后台服务、数据存储、媒体播放、手机特色等功能。

2.2 可行性分析

  1. 首先要对用户进行注册和登录修改删除等功能:可以使用sqlite数据库

  1. 要扫描文件夹的mp3文件:使用Java文件流的读写操作和Android的存取权限控制

  1. 要实现音乐的播放:使用MediaPlayer类来对音乐进行操作

  1. 布局使用安卓自带的LinearLayout标签

  1. 菜单使用安卓自带的Menu类

  1. 按钮使用安卓自带的Button类

  1. 还有对权限进行控制:使用Mainfest.permission等属性赋予权限

  1. 对于组件间的通信使用Intent类

  1. 对于部分广播信息使用Toast类

  1. 确定使用的技术,进行实际开发。

第三章 系统分析

MainActivity类

Protect void onCreate(Budle): 构建主界面

对于主页面一些组件的管理和对于一些事件的监听

Record类

对于一些常用的变量要做静态存储处理,比如说用户名,密码,数据库链接,还有登录时间,当前播放的音乐文件等

MusicActivity类

该类主要用于音乐播放的初始化处理和对音乐进行播放,暂停,重置播放等功能,以下是该类应该具备的功能。

Protect void onCreate(Bundle): 构建播放音乐界面

Public boolean onCreateOptionsMenu(Menu): 添加菜单(返回,注销,更新信息)这个功能应当用于登录之后的每一个页面

Public void onOptionsItemSelected(MenuItem):对于子菜单进行监听处理,这个功能也应当用于登录之后的每一个页面

Public void onRequestPermissionsResult(int String[] int[]): 对于音乐播放的权限处理

Protect void onDestroy(): 用于关闭释放MediaPlayer播放器

Private void initMediaPlayer(): 对于MusicPlayer进行初始化和准备工作。

Time类

该类主要用于获取当前时间(原本还写了一个日志类,但是由于时间紧凑,该类的功能没能得到补充)

Public static String getCurrentTime() 用于获取当前时间

DBAdapter类

该类主要对于数据库的一些增删查改操作进行封装,此处方法过多就不进行一一解释了。只介绍一些重要的方法和内部类。

Private static Class DBOpenHelper extends SQLiteOpenHelper静态Helper类,用于建立更新和打开数据库

Public long insert(User): 用于插入用户,实现注册功能

Public User queryOneData(String String): 用于查找指定某一个用户,实现用户登录功能。

Public long deleteOneData(String): 用于删除某个指定用户,实现用户注销功能。

Public long updateOneData(String User):根据指定条件更新某个用户的信息,实现更新用户信息功能。

User 类

对于数据库的用户表而建的用户类。

UserMsgActivity类

该类用于展示用户登录之后的页面,比如说展示一些提示信息,登陆时间和用户喜爱的音乐,还有菜单的对用户的信息进行管理。有以下主要方法

Protect void onCreate(Bundle): 创建用户登录之后的页面

Public void find(File, String): 查找某一个指定文件,也就是实现播放某一个指定音乐功能。

Public ArrayList<File> getAllMusic(): 获取目录下的所有音乐文件。

Public boolean onCreateOptionsMenu(Menu): 添加菜单(返回,注销,更新信息)这个功能应当用于登录之后的每一个页面

Public void onOptionsItemSelected(MenuItem):对于子菜单进行监听处理,这个功能也应当用于登录之后的每一个页面

UpdateUser 类

该类用于展示用户更新信息的页面,实现用户更新密码,更换用户名等功能。

Protect void onCreate(Bundle) : 用于创建用户更新信息的页面。

Public boolean onCreateOptionsMenu(Menu): 添加菜单(返回,注销,更新信息)这个功能应当用于登录之后的每一个页面

Public void onOptionsItemSelected(MenuItem):对于子菜单进行监听处理,这个功能也应当用于登录之后的每一个页面

还有一些事件监听方法过多就不进行一一列举了。

第四章 系统设计及实现

4.1系统设计:

首先应当分为四个包分别装有对应功能的类,如下图:

activity包下存放的是更新用户信息类(UpdateUser)和展示用户信息类(UserMsgActivity)

DB包下存放的是数据库操作类(DBAdapter)和实体用户类(User)

log包下存放的是日志类(Logger)和时间类(Time)// 注:日志类暂无实现该功能

lyl包下存放的是主类(MainActivity)和记录类(Record)

musicplayer包下存放的是音乐操作类(MusicActivity)

4.2实现

com.example.activity.UpdateUser

package com.example.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.annotation.Nullable;

import com.example.DB.User;
import com.example.lyl.R;
import com.example.lyl.Record;

public class UpdateUser extends Activity {

    private EditText agoPassword;
    private EditText newPassword;
    private EditText againPassword;
    private EditText agoUsername;
    private EditText newUsername;
    private Button updatePassword;
    private Button updateUsername;
    private Button resetUsername;
    private Button resetPassword;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.updateuser);

        agoPassword = findViewById(R.id.editAgoPassword);
        newPassword = findViewById(R.id.editNewPassword);
        againPassword = findViewById(R.id.editAgainPassword);
        updatePassword = findViewById(R.id.updatePassword);
        agoUsername = findViewById(R.id.editAgoUsername);
        newUsername = findViewById(R.id.editNewUsername);
        resetPassword = findViewById(R.id.resetPassword);
        updateUsername = findViewById(R.id.updateBtnUsername);
        resetUsername = findViewById(R.id.resetUsername);

        agoUsername.setText(Record.username);

        updatePassword.setOnClickListener(onUpdatePwClickListener);
        updateUsername.setOnClickListener(onUpdateUnClickListener);
        resetPassword.setOnClickListener(onResetPwClickListener);
        resetUsername.setOnClickListener(onResetUnClickListener);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        MenuInflater inflater = getMenuInf
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会洗碗的CV工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值