현재 일반 음악 플레이어 제작중인데요..

 

cursor를 통해 음악파일을 불러오자나요..? 그런데 이게 음악파일이 5-6개면 그냥 바로 시작되는데

 

현재 저의 휴대폰이 갤럭시u인데 음악파일이 200개정도 들어있습니다.. 이정도 되는간 딜레이가 발생하는데 어떻게 해야할까요..

 

핸들러 이용해서 로딩화면도 만들고해도 db읽는 부분에서 로딩바도 같이 멈춰스더군요..;; 싱글코어라 그런가;;

 

아무튼 제 소스가  밑에 있습니다 처음엔 다읽어 오지 않게 do while문 밑에서 카운트세서 만약 10이면 리턴하게 하려고

하는데 이렇게 하면 에러나내요.. 삼성 기본 음악플레이어는 딜레이 없이 바로 켜지던데 어떻게 해야할지..

 

아그리고 managedQuery에서 두번째 인자에 proj를 넣으면 에러가 나는대요 2번째 인자가 거기에 있는거만 검색해 오는거 맞나요

그런데 왜 에러가 나는지 모르겠습니다.. 인터넷에 많이 검색해봤는데 두번째 인자를 널로 안하면 무조건 예외가 됬다고 되면서

꺼집니다.. 고수님들 도움좀 주세요..

 private void getMusicInfo(){
          String[] proj = new String[]{MediaStore.Audio.Media.ALBUM,
                MediaStore.Audio.Media.ALBUM_ID,
                MediaStore.Audio.Media.TITLE,
                MediaStore.Audio.Media.ARTIST
       };

        main.cur =  ((Activity) mContext).managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
          null, null, null, MediaStore.Audio.Media.TITLE);
        main.nCount=main.cur.getCount();
        int count=0;
        if (main.cur != null && main.cur.moveToFirst()){
           
         String musicID;
            String albumID;
            String musicTitle;
            String singer;
           
            int musicIDCol = main.cur.getColumnIndex(MediaStore.Audio.Media.ALBUM);
            int albumIDCol = main.cur.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
            int musicTitleCol = main.cur.getColumnIndex(MediaStore.Audio.Media.TITLE);
            int singerCol = main.cur.getColumnIndex(MediaStore.Audio.Media.ARTIST);
           do {
             
                        musicID =main.cur.getString(musicIDCol);
                albumID = main.cur.getString(albumIDCol);
                musicTitle = main.cur.getString(musicTitleCol);
                singer = main.cur.getString(singerCol);
         
                mMusicIDList.add(musicID);
                mAlbumartIDList.add(albumID);
                mMusiceTitleList.add(musicTitle);
                mSingerList.add(singer);
              
              }while (main.cur.moveToNext());
        
        }
     
        return;
    }