2016-03-07 2 views
-1

Pendant que j'accède aux détails des chansons, il montre uniquement le nom de l'artiste et le nom de la chanson mais ne montre pas la durée d'une chanson.lorsque j'essaie d'accéder aux détails de la chanson, il ne montre pas la durée d'une chanson

public class ThirdFragment extends android.support.v4.app.Fragment { 
//song list variables 
private ArrayList<Song> songList; 
private ListView songView; 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.third_frag, container, false); 

    //retrieve list view 
    songView = (ListView)v.findViewById(R.id.song_list); 

    //instantiate list 
    songList = new ArrayList<Song>(); 


    getSongList(); 
    //sort alphabetically by title 
    Collections.sort(songList, new Comparator<Song>(){ 
     public int compare(Song a, Song b){ 
      return a.getTitle().compareTo(b.getTitle()); 
     } 
    }); 
    //create and set adapter 
    SongAdapter songAdt = new SongAdapter(getActivity(), songList); 
    songView.setAdapter(songAdt); 
    return v; 
} 

public static ThirdFragment newInstance(String text) { 

    ThirdFragment f = new ThirdFragment(); 


    return f; 
} 
//method to retrieve song info from device 
public void getSongList(){ 
    //query external audio 
    ContentResolver musicResolver =getActivity().getContentResolver(); 
    Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    Cursor musicC`enter code here`ursor = musicResolver.query(musicUri, null,null, null, null); 
    //iterate over results if valid 
    if(musicCursor!=null && musicCursor.moveToFirst()){ 
     //get columns 
     int titleColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media.TITLE); 
     int idColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media._ID); 
     int artistColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media.ARTIST); 
     int durationColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.DURATION); 

     //add songs to list 
     do { 
      long thisId = musicCursor.getLong(idColumn); 
      String thisTitle = musicCursor.getString(titleColumn); 
      String thisArtist = musicCursor.getString(artistColumn); 
      String thisDuration = musicCursor.getString(durationColumn); 
      songList.add(new Song(thisId, thisTitle,  thisArtist,thisDuration)); 
     } 
     while (musicCursor.moveToNext()); 
     } 
    } 
    }` 

Je reçois l'exception suivante

processus: com.blogspot.hongthaiit.viewpagerwithtabs, PID: 15657 android.content.res.Resources $ NotFoundException: ressource ID chaîne

+0

processus: com.blogspot.hongthaiit.vi ewpagerwithtabs, PID: 15657 android.content.res.Resources $ NotFoundException: ID de ressource de chaîne # 0x0 – user3770417

+0

il me montre cette exception – user3770417

Répondre

0
// load data file 
    MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever(); 
    metaRetriever.setDataSource(filePath); 
    String out = "";// get mp3 info 
    String duration = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); 
    long dur = Long.parseLong(duration); 
    String seconds = String.valueOf((dur % 60000)/1000); 
    String minutes = String.valueOf(dur/60000); 
    out = minutes + ":" + seconds; 
    if (seconds.length() == 1) { 
    txtTime.setText("0" + minutes + ":0" + seconds); 
    }else { 
    txtTime.setText("0" + minutes + ":" + seconds); 
    } 
    metaRetriever.release(); 

Merci,