Advertisement
amosref

FragmentAudio.class

Sep 13th, 2015
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.14 KB | None | 0 0
  1. package com.example.ref_apps.winnerplayer;
  2.  
  3. import android.app.Fragment;
  4. import android.app.ListFragment;
  5. import android.content.Context;
  6. import android.database.Cursor;
  7. import android.media.MediaMetadataRetriever;
  8. import android.os.Bundle;
  9. import android.provider.MediaStore;
  10. import android.util.Log;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.view.ViewGroup;
  14.  
  15. import java.util.ArrayList;
  16. import java.util.Locale;
  17.  
  18. /**
  19.  * Created by amosr on 09/09/2015.
  20.  */
  21. public class FragmentAudio extends ListFragment  {
  22.  
  23.     ArrayList<AudioItem> audioList;
  24.  
  25.     @Override
  26.     public void onCreate(Bundle savedInstanceState) {
  27.         super.onCreate(savedInstanceState);
  28.         final String[] projection = {MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DATA};
  29.         final String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
  30.         //final String[] projection1 = {MediaStore.Audio.Playlists._ID, MediaStore.Audio.Playlists.NAME};
  31.         //  String[] projection2 = { MediaStore.Audio.Playlists._ID, MediaStore.Audio.Playlists.NAME, MediaStore.Audio.Playlists.DATA };
  32.  
  33.  
  34.         Cursor cursor = getActivity().getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, null, null);
  35.  
  36.         while (cursor.moveToNext()) {
  37.             String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
  38.             String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
  39.             String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
  40.             String fullPath = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
  41.             String length = getTrackLength(fullPath);
  42.  
  43.             audioList.add(new AudioItem(artist, album, title, length, fullPath));
  44.         }
  45.  
  46.  
  47.  
  48.     }
  49.  
  50.    @Override
  51.     public View onCreateView(LayoutInflater inflater, ViewGroup container,
  52.                              Bundle savedInstanceState) {
  53.         // Inflate the layout for this fragment
  54.        setListAdapter(new ListAdapterAudio(getActivity(), audioList));
  55.         return inflater.inflate(R.layout.fragment_audio_list, container, false);
  56.     }
  57.  
  58.     public String getTrackLength(String filePath){
  59.         // load data file
  60.         MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
  61.         metaRetriever.setDataSource(filePath);
  62.  
  63.         String out;
  64.  
  65.         // convert duration to minute:seconds
  66.         String duration =
  67.                 metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
  68.         Log.v("time", duration);
  69.         long dur = Long.parseLong(duration);
  70.         String seconds = String.valueOf((dur % 60000) / 1000);
  71.  
  72.         Log.v("seconds", seconds);
  73.         String minutes = String.valueOf(dur / 60000);
  74.  
  75.         if (seconds.length() == 1) {
  76.             out = "0" + minutes + ":0" + seconds;
  77.         }else {
  78.             out = "0" + minutes + ":" + seconds;
  79.         }
  80.  
  81.         // close object
  82.         metaRetriever.release();
  83.         return out;
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement