音乐播放器APP

很早之前就有制作音乐播放器APP的想法了。最近有空实现了一下。

我是使用的Android Studio编程开发环境,在我的华为mate30手机中测试安装。

音乐播放器app实现了音乐文件播放、暂停功能和音乐文件的显示、选择。APP包括2个Activity和1个service。另外有实现播放控制条。

我是先设计app的显示,然后添加activty中的按钮事件实现activity跳转,再添加service实现播放功能和进度条功能,最后实现音乐文件显示和播放功能。

一、activity显示设计

1、播放功能的Activity:

 实现的代码为:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/menu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:orientation="horizontal"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:id="@+id/button_file"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文件" />

        <Button
            android:id="@+id/button_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="显示" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintTop_toBottomOf="@id/menu">

        <TextView
            android:id="@+id/textView_lyric"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="歌词显示" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintBottom_toTopOf="@id/tools">

        <SeekBar
            android:id="@+id/seekBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/textView_duration"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="时长" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:gravity="center"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent">

        <Button
            android:id="@+id/button_previous"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="上一首"
            android:visibility="invisible" />

        <Button
            android:id="@+id/button_play"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="播放" />

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

        <Button
            android:id="@+id/button_next"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="下一首"
            android:visibility="invisible" />
    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

2、显示音乐文件的Activity:

 实现的代码为:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".FileActivity">

    <LinearLayout
        android:id="@+id/menu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:id="@+id/button_file2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文件" />

        <Button
            android:id="@+id/button_view2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="显示" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintTop_toBottomOf="@id/menu">

        <TextView
            android:id="@+id/textView_path"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="选择文件路径"
            android:visibility="invisible" />

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        </ListView>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:gravity="center_horizontal"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent">

        <Button
            android:id="@+id/button_confirm_path"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="确认" />

        <Button
            android:id="@+id/button_cancel_path"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="取消" />
    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

二、activity中实现点击事件以及进度条

1、播放activity实现音乐播放、暂停按钮

按钮点击事件处理中,跳转到音乐播放service中提供的音乐播放功能,实现音乐的播放、暂停功能。

2、播放activity中实现进度条

定时任务定时发送消息给进度条handle跟新进度。

3、文件activity实现音乐文件的显示、文件的选择

文件操作打开音乐文件夹,显示在listview中,格式显示为单选。

三、service中实现音乐播放功能

1、路径为raw的音乐文件的播放

service在oncreate时创建音乐播放的mediaplayer实例。在onstart时播放、暂停音乐功能。

2、路径存放为手机外部存储的音乐文件的播放

service在onstart时创建音乐的播放。

四、最后,音乐文件存放路径为/Android/Data/项目名称路径(com.example.mymusicplayer)/Files/Music/

好了,现在可以把自己喜欢的音乐放在存放路径中,带在手机中随时播放听音乐了。

链接:

https://github.com/luwei-pixsel/mymusicplayer

Android studio使用GitHub对项目进行版本管理_sunbinkang的博客-CSDN博客_android studio使用github

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值