0

我想創建一個項目,我有兩個選項卡(歌曲和圖像) 如果我點擊歌曲選項卡,我想要存儲在我的SD卡中的歌曲的整個列表或內部存儲。同樣,當我進入圖像選項卡時,所有圖像對我都是可見的。 也點擊音樂文件,它應該開始播放音樂和點擊圖像,它應該顯示圖像。有人請給我提供整個代碼? 您的幫助將深受讚賞。從sd卡導入項目和tabview正在使用

回答

0

要找到SD卡上的所有音頻文件,創建這樣

private void findAllMusicFiles() 
{  
    Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    String[] projection = { MediaStore.Audio.AudioColumns.DATA, MediaStore.Audio.AudioColumns.DISPLAY_NAME }; 
    Cursor audioCursor = getApplicationContext().getContentResolver().query(uri, projection, null, null, null); 

    if (audioCursor != null) { 
     while (audioCursor.moveToNext()) { 

      mediaNameList.add(audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.AudioColumns.DISPLAY_NAME))); 
      mediaPathList.add(audioCursor.getString(0)); 

     } 
     audioCursor.close(); 
    } 
} 

mediaNameList的方法只包含文件的名稱顯示

mediaPathList包含對這些文件的路徑

兩個這些是數組列表

將這些列表傳遞給適配器並調用onItemClickListener以獲取文件的路徑(按位置)臨時t您想要玩

使用媒體播放器播放選定的歌曲,你可以試試下面的(這部分仍處於開發階段,所以你可能會得到一些問題)

songList.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, 
       long arg3) { 
      // TODO Auto-generated method stub 
      //Toast.makeText(mContext, mediaNameList.get(position), Toast.LENGTH_LONG).show(); 

      setVolumeControlStream(AudioManager.STREAM_MUSIC); 
      try { 
       if(player.isPlaying()){ 
        player.stop(); 
        player.release(); 
        player=null; 
       }else{ 
        player.reset(); 
        player.setDataSource(mediaPathList.get(position)); 
        player.prepare(); 
        player.start(); 
       } 
      } catch (IllegalArgumentException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } catch (SecurityException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } catch (IllegalStateException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      }   

     } 
    }); 
} 

點擊歌曲名稱,一旦啓動玩,點擊第二次停止

+0

thanku但我想你沒有得到我的問題。 – user3608017

+0

參考你的第一個代碼,我是否必須製作任何XML文件或edir我的主XML文件? – user3608017

+0

是的,你將不得不爲你的歌曲名稱列表看起來像xml製作xml,並在你的適配器中使用這個xml。我給你的兩個數組列表mediaNameList和mediaPathList將作爲該歌曲列表的數據。同樣,你也可以準備你的圖片列表。我給你的只是通過整個SD卡和邏輯給出一個關於搜索邏輯的想法來播放和停止音頻文件。 – Kaustuv