Projet Android : lecteur de musique

1. Analyse de la demande

Utilisation complète de la conception de l'interface utilisateur, du stockage de données Sqlite, de l'activité (activité), du service (service), de MusicPlayer (classe de lecteur de musique), de ListView (liste), de GridView (liste de grille), de Fragment (fragment), de BaseAdapter (adaptateur) et autres connaissance, conception et développement d'un lecteur de musique avec liste de musique.

2. Analyse de conception

Ci-dessous sont tous les fichiers de code
insérez la description de l'image ici

3. Analyse du fichier de ressources

Tous les fichiers musicaux de ce projet sont stockés localement, il n'y a pas de serveur, bien sûr il peut être utilisé. Les fichiers musicaux sont stockés dans le dossier raw sous le dossier res, les ressources d'image sont stockées dans les dossiers drawable et mipmap, les styles de contrôle sont également stockés dans drawable et les couleurs sont définies dans les couleurs sous les valeurs.

4. Environnement de développement

élément d'environnement paramètre
JDK 1.8
Version Androïd 10.0
API Android 29

5. Page de connexion

La première est l'interface de connexion au système, qui est la première interface que les utilisateurs voient après l'installation de l'application. Ils doivent utiliser le nom d'utilisateur et le mot de passe corrects pour accéder au lecteur. Sur cette page, vous pouvez choisir de mémoriser le mot de passe et automatiquement connectez-vous. Si vous choisissez simplement de mémoriser le mot de passe, après avoir quitté l'application et ressaisi le mot de passe du compte sera enregistré, mais ne se connectera pas automatiquement. Si la connexion automatique est cochée, il se connectera automatiquement en fonction du mot de passe du compte. La prochaine fois que vous le démarrerez, vous ignorerez la connexion et l'invite que vous avez déjà connectées automatiquement.
Interface de connexion à l'application Wangyiyun

6. Page d'inscription

L'utilisateur accède à l'interface d'enregistrement de l'utilisateur en cliquant sur "Pas encore enregistré ? Cliquez ici pour essayer" sur l'interface de connexion. Le mot de passe entré deux fois doit être le même et le nom d'utilisateur et le mot de passe ne peuvent pas être vides pour s'enregistrer avec succès. Une fois l'enregistrement réussi, utiliser le compte enregistré Vous pouvez utiliser le lecteur en vous connectant au système avec le mot de passe.
insérez la description de l'image ici

7. La page principale du lecteur de musique

Lorsque l'utilisateur se connecte pour la première fois, il sera invité à autoriser l'application Wangyiyun à obtenir l'autorisation de stockage. Après avoir obtenu l'autorisation, l'application analysera automatiquement les fichiers audio dans le téléphone et reviendra à la liste audio sur le interface principale. L'utilisateur peut cliquer pour commencer à écouter la chanson, et il y a une pause sur l'interface principale. Jouer, arrêter de jouer, chanson suivante et chanson précédente, vous pouvez régler le volume du téléphone et faire glisser la barre de progression de la lecture .
insérez la description de l'image ici

Huit, la barre de menu du lecteur de musique

Cliquez en haut à droite pour entrer dans la barre de menu en haut à droite, il y a 6 fonctions au total, à savoir le thème, le mode de lecture, le réglage du sommeil, à propos, la sortie, la déconnexion
insérez la description de l'image ici

Neuf, thème de réglage du lecteur de musique

Cliquez sur le thème dans la barre de menu dans le coin supérieur droit pour afficher la fenêtre contextuelle du thème, sélectionnez un thème dans la fenêtre contextuelle et l'image d'arrière-plan correspondante sera automatiquement commutée pour le lecteur.
insérez la description de l'image ici

10. Mode de lecture du lecteur de musique

Cliquez sur le mode de lecture dans la barre de menus dans le coin supérieur droit et l'interface de sélection du mode de jeu apparaîtra. Vous avez le choix entre quatre modes, à savoir la lecture séquentielle, la boucle unique, la boucle de liste et la lecture aléatoire.
insérez la description de l'image ici

11. Paramètres de veille du lecteur de musique

Cliquez sur Paramètres de veille dans la barre de menu en haut à droite pour faire apparaître l'option Paramètres de veille, faites glisser la barre de progression pour sélectionner l'heure correspondante, cliquez sur pour activer le commutateur, cliquez sur OK pour définir l'heure de veille, et l'application se fermera automatiquement lorsque le Le temps s'est écoulé.
insérez la description de l'image ici

12. Lecteur de musique pour afficher les paroles

Cliquez sur Télécharger les paroles dans la barre de menu dans le coin supérieur droit ou glissez sur 300 pixels pour accéder à l'interface Paroles, il ira automatiquement sur Fanfan.com pour interroger les paroles de la chanson en cours de lecture, s'il y a un résultat, il le fera renvoie les paroles, s'il n'y a pas de résultat, il n'affichera aucune parole.
insérez la description de l'image ici

Treize, une partie du code

Scannez les fichiers audio dans le téléphone mobile pour initialiser le code de la clé de la liste de musique
insérez la description de l'image ici
Rappelez-vous le mot de passe sur la page de connexion, quelques codes
insérez la description de l'image ici
Le code d'implémentation de la clé pour le réglage du mode veille
insérez la description de l'image ici
Donnez le code activity_musicplayer.xml complet

<?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>

14. Résumé

Pour obtenir le code source, veuillez m'envoyer un message privé directement.

Je suppose que tu aimes

Origine blog.csdn.net/Soncat2000/article/details/127567100
conseillé
Classement