Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android音樂播放器怎麼搜索SD卡上的音樂文件

android音樂播放器怎麼搜索SD卡上的音樂文件

編輯:關於Android編程

安卓系統在開機的時候就會自動檢測SD卡的文件,並將音樂文件搜集生成一個數據庫文件。我們只需訪問數據庫表中的信息就能得到所需的文件 代碼如下  
<span style="font-size:14px; white-space: pre;">            </span><span style="font-size:14px;">// 獲取所有歌曲 
            Cursor cursor = cr.query(  
                    MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null,  
                    null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);</span>  

 

    得到cursor對象就能訪問cursor裡的媒體資源  
if (cursor.moveToFirst()) {  
                do {  
                    String title = cursor.getString(cursor  
                            .getColumnIndex(MediaStore.Audio.Media.TITLE));  
                    String singer = cursor.getString(cursor  
                            .getColumnIndex(MediaStore.Audio.Media.ARTIST));  
                    String album = cursor.getString(cursor  
                            .getColumnIndex(MediaStore.Audio.Media.ALBUM));  
                    long size = cursor.getLong(cursor  
                            .getColumnIndex(MediaStore.Audio.Media.SIZE));  
                    long time = cursor.getLong(cursor  
                            .getColumnIndex(MediaStore.Audio.Media.DURATION));  
                    String url = cursor.getString(cursor  
                            .getColumnIndex(MediaStore.Audio.Media.DATA));  
                    int _id = cursor.getInt(cursor  
                            .getColumnIndex(MediaStore.Audio.Media._ID));  
                    String name = cursor.getString(cursor  
                            .getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));  
                    String sbr = name.substring(name.length() - 3,  
                            name.length());  
                } while (cursor.moveToNext());  
<p>  
</p>  
<p>  
    <span style="font-size:14px; color:#3366ff; background-color:rgb(255,255,255)">但是如果你的手機在開機後又下載了新的歌曲文件通過上面的方法是訪問不到的,因為它還沒有被加到數據表中,這樣我們就要重寫文件搜索的方法。</span>  
</p>  
<p>  
    <br>  
      
</p>  
<pre name="code" class="java">//獲取該路徑下的所有文件  
    public static List<String> getAllFile(String path){  
        List<String> fileList = new ArrayList<String>();  
        File folder = new File(path);  
        addFile(fileList, folder);  
        return fileList;  
    }  
      
    public static void addFile(List<String> fileList,File f){  
        if(f.isDirectory()){  
            File[] files = f.listFiles();  
            for(File f1 : files){  
                addFile(fileList, f1);  
            }  
        }else{  
            String filename = f.getName();  
            if(filename.length()>4&&filename.substring(filename.length()-4).equalsIgnoreCase(".mp3")){  
                fileList.add(f.getAbsolutePath());    
            }  
        }  
    }</pre><span style="font-size:14px"><br>  
</span>我們只需在需要的地方調用<pre name="code" class="java">getAllFile(Environment.getExternalStorageDirectory().getAbsolutePath());</pre><br>  
<br>  
<pre></pre>  
<p></p>  
<pre></pre>  

 

 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved