2013-11-21 2 views
1

내 앱에서 만든 모든 녹음 된 오디오를 나열해야하는이 앱에는 경로가 있습니다. Dir_recorded_audios는 다음과 같은 의미입니다./mnt/sdcard/My Audios/ 나는 audios의 DURATION과 같은 세부 사항이 필요합니다. 무엇이 문제입니까? 내가 문제와 올바른 solveing을 아는 내가 그렇게 confused.any 도움을 오전내 오디오에 대한 커서가 내 폴더에서 작동하지 않습니다. 작동합니까? (해결됨)

Construct MediaStore URI for specific folder

Empty cursor from the MediaStore

Get all audio files from a folder

하지만 나를 happy.this nesseray 것 : 너무, 나는이 링크를 읽어 . 고마워. 이 코드는 정확했다

enter code herepublic static void getAllRecordedAudios(Context context) 
{ 

     String name=""; 
     String format=""; 

     String path=""; 
     String size=""; 
     String totalTime=""; 
     String createTime=""; 
     String createDate=""; 
     String[] star={"*"};   
     Cursor audioCursor = ((Activity)context). managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,star, null, null, null);  

    if (audioCursor==null) 
     Log.d("audio cursor is null",""); 

    if (audioCursor != null) 
    { 
     if (audioCursor.moveToFirst()) 
     { 
      do 
      { 
       String path = audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.Media.DATA)); 
        name=audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));   
        String str_duration=audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.Media.DURATION));  
        totalTime=SDcard.CalTotalTime(Integer.valueOf(str_duration)); 



        String last =audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.Media.DATE_MODIFIED));  
        createDate=last; 
        size=audioCursor.getString(audioCursor.getColumnIndex(MediaStore.Audio.Media.SIZE));  
        format=SDcard.getFormat(current_path); 

       Log.d("************", "**************"); 
       Log.d("name", name); 
       Log.d("format", format); 
       Log.d("path",path); 
       Log.d("totalTime", totalTime); 
       Log.d("size", size); 
       Log.d("createTime", createTime); 
       Log.d("createdate", createDate); 

       StructureDetails audioDetails=new StructureDetails(name, format, path,totalTime , size , createTime , createDate);   

      ArrayManager.Add_ThisAudio_ToArrayRecorded(audioDetails); 
       }while (audioCursor.moveToNext()); 
     } 
      audioCursor.close(); 
    }     


} 
+0

노래를 재생할 수 있었습니까? 또는 당신의 문제는'sd 카드'에서 노래를 잡는 것과 관련이 있습니까? –

+0

당신은 당신의 대답을 받아 들일 수 있습니다, 우리는 당신을 투표 할 수 있습니다 –

+0

감사합니다 .................... –

답변

0

: 여기에 내 전체 코드입니다. 문제는 : 내 폴더에 녹음하여 오디오를 추가 할 때 mediaStore를 새로 고침해야합니다.이 코드를 찾고 목록을 표시하기 전에이를 호출해야합니다.

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));