Android - 为 Android 创建音乐播放器,例如 Google 的 Play Music?

Posted

技术标签:

【中文标题】Android - 为 Android 创建音乐播放器,例如 Google 的 Play Music?【英文标题】:Android - Create music player for android like Play Music from Google? 【发布时间】:2016-06-19 00:55:49 【问题描述】:

我想为 android 创建一个音乐播放器,比如 Play Music,所以我从 github 导入了 Google 的 Universal Music Player,但我不知道在哪里插入代码以便它从本地存储中读取音乐。我知道一切都提供了背景音乐服务、通知栏等。但我不知道如何从手机存储中读取音乐文件。

通用音乐播放器 - https://github.com/googlesamples/android-UniversalMusicPlayer

我在 android 中制作了一些简单的应用程序,但没有创建任何这种复杂的应用程序。我介于初学者和中级之间。请帮忙!

【问题讨论】:

看看如何使用内部存储:developer.android.com/guide/topics/data/… 【参考方案1】:

推荐

嗨!使用简单的音乐播放器查看my repository。歌曲从外部存储加载。支持预棒棒糖。

解决方案

作为歌曲加载问题的解决方案:您可以像这样从外部存储中加载歌曲:

私有 ArrayList 歌曲 = new ArrayList(); // Song 是一些数据模型

public void getSongList() 
        ContentResolver musicResolver = getContentResolver();
        Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
        Uri artworkUri = Uri.parse("content://media/external/audio/albumart");

        Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null);

        if (musicCursor != null && musicCursor.moveToFirst()) 
            // song title
            int titleColumn = musicCursor.getColumnIndex
                    (MediaStore.Audio.Media.TITLE);
            // song unique id
            int idColumn = musicCursor.getColumnIndex
                    (MediaStore.Audio.Media._ID);
            // song's artist
            int artistColumn = musicCursor.getColumnIndex
                    (MediaStore.Audio.Media.ARTIST);
            // path to album art
            int albumIdColumn = musicCursor.getColumnIndex
                    (MediaStore.Audio.Media.ALBUM_ID);

            do 
                long thisId = musicCursor.getLong(idColumn);
                String thisTitle = musicCursor.getString(titleColumn);
                String thisArtist = musicCursor.getString(artistColumn);
                long albumId = musicCursor.getLong(albumIdColumn);
                String albumArt = "";

                try 
                    albumArt = (ContentUris.withAppendedId(artworkUri, albumId)).toString();
                    Log.d(TAG, "TEST Album art: " + albumArt);
                 catch (Exception ex) 
                    ex.printStackTrace();
                
                // Adding new song to ArrayList
                songs.add(new Song(thisId, thisTitle, thisArtist, albumArt));
            
            while (musicCursor.moveToNext());
        

        if (musicCursor != null)
            musicCursor.close();
    

【讨论】:

以上是关于Android - 为 Android 创建音乐播放器,例如 Google 的 Play Music?的主要内容,如果未能解决你的问题,请参考以下文章

播放背景音乐,用户可以停止或重新启动或暂停音乐

Android项目实战之高仿网易云音乐创建项目和配置

android中广播问题

android中的广播是啥意思

Android:如何为我的应用播放的任何音乐文件创建淡入/淡出音效?

android wifi 组播