Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.36 KB | None | 0 0
  1. package com.range.mediafail;
  2.  
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.database.Cursor;
  6. import android.media.MediaPlayer;
  7. import android.os.Bundle;
  8. import android.os.Handler;
  9. import android.os.Message;
  10. import android.provider.MediaStore;
  11. import android.view.Menu;
  12. import android.view.MenuInflater;
  13. import android.view.MenuItem;
  14. import android.view.View;
  15. import android.view.ViewGroup;
  16. import android.widget.AdapterView;
  17. import android.widget.AdapterView.OnItemClickListener;
  18. import android.widget.BaseAdapter;
  19. import android.widget.ListView;
  20. import android.widget.SeekBar;
  21. import android.widget.TextView;
  22.  
  23. @SuppressWarnings("unused")
  24. public class speel extends Activity implements Runnable {
  25.       ListView musiclist;
  26.       ListView ListList;
  27.       Cursor musiccursor;
  28.       Cursor listcursor;
  29.       int music_column_index;
  30.       int list_column_index;
  31.       int count;
  32.       int listcount;
  33.       MediaPlayer mp;
  34.       private SeekBar progress;
  35.      
  36.  
  37.       /** Called when the activity is first created. */
  38.       @Override
  39.       public void onCreate(Bundle savedInstanceState) {
  40.             super.onCreate(savedInstanceState);
  41. //          progress = (SeekBar) findViewById(R.id.seekbar);
  42.             setContentView(R.layout.main);
  43.             init_phone_music_grid();
  44.       }
  45.  
  46.       private void init_phone_music_grid() {
  47.             System.gc();
  48.             String[] proj = { MediaStore.Audio.Media._ID,
  49.             MediaStore.Audio.Media.DATA,
  50.             MediaStore.Audio.Media.DISPLAY_NAME,
  51.             MediaStore.Video.Media.SIZE,
  52.             MediaStore.Audio.Media.ARTIST,
  53.             MediaStore.Audio.Media.TITLE};
  54.             musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
  55.             proj, null, null, null);
  56.             count = musiccursor.getCount();
  57.             musiclist = (ListView) findViewById(R.id.PhoneMusicList);
  58.             musiclist.setAdapter(new MusicAdapter(getApplicationContext()));
  59.             musiclist.setOnItemClickListener(musicgridlistener);
  60.             mp = new MediaPlayer();
  61.       }
  62.  
  63.       private OnItemClickListener musicgridlistener = new OnItemClickListener() {
  64.             @SuppressWarnings("rawtypes")
  65.             public void onItemClick(AdapterView parent, View v, int position, long id) {
  66.                   System.gc();
  67.                   music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
  68.                   musiccursor.moveToPosition(position);
  69.                   String filename = musiccursor.getString(music_column_index);
  70.                   try {
  71.                         if (mp.isPlaying()) {
  72.                             mp.reset();
  73.                         }
  74.                         mp.setDataSource(filename);
  75.                         mp.prepare();
  76.                         mp.start();
  77.                   } catch (Exception e) {
  78.  
  79.                   }
  80.             }
  81.       };
  82.      
  83.       private OnItemClickListener listgridlistener = new OnItemClickListener() {
  84.           @SuppressWarnings("rawtypes")
  85.             public void onItemClick(AdapterView parent, View v, int position, long id) {
  86.                 String ID = "1";
  87.                 Cursor musiccursor = getPlaylists (ID);
  88.                 count = musiccursor.getCount();
  89.                 musiclist = (ListView) findViewById(R.id.PhoneMusicList);
  90.                 musiclist.setAdapter(new MusicAdapter(getApplicationContext()));                
  91.                 musiclist.setOnItemClickListener(musicgridlistener);
  92.                 setContentView(R.layout.main);
  93.           }
  94.     };
  95.  
  96.       public class ListAdapter extends BaseAdapter {
  97.             private Context mContext;
  98.  
  99.             public ListAdapter(Context c) {
  100.                   mContext = c;
  101.             }
  102.  
  103.             public int getCount() {
  104.                   return listcount;
  105.             }
  106.  
  107.             public Object getItem(int position) {
  108.                   return position;
  109.             }
  110.  
  111.             public long getItemId(int position) {
  112.                   return position;
  113.             }
  114.  
  115.             public View getView(int position, View convertView, ViewGroup parent) {
  116.                   System.gc();
  117.                   TextView tv = new TextView(mContext.getApplicationContext());
  118.                   String id = null;
  119.                   if (convertView == null) {
  120.                         list_column_index = listcursor.getColumnIndexOrThrow(MediaStore.Audio.Playlists.NAME);
  121.                         listcursor.moveToPosition(position);
  122.                         id = listcursor.getString(list_column_index);
  123.                         list_column_index = listcursor.getColumnIndexOrThrow(MediaStore.Audio.Playlists._ID);
  124.                         listcursor.moveToPosition(position);
  125.                         id += " - " + listcursor.getString(list_column_index);
  126.                         tv.setText(id);
  127.                   } else
  128.                         tv = (TextView) convertView;
  129.                   return tv;
  130.             }
  131.         }
  132.      
  133.       public class MusicAdapter extends BaseAdapter {
  134.           private Context mContext;
  135.  
  136.           public MusicAdapter(Context c) {
  137.                 mContext = c;
  138.           }
  139.  
  140.           public int getCount() {
  141.                 return count;
  142.           }
  143.  
  144.           public Object getItem(int position) {
  145.                 return position;
  146.           }
  147.  
  148.           public long getItemId(int position) {
  149.                 return position;
  150.           }
  151.  
  152.           public View getView(int position, View convertView, ViewGroup parent) {
  153.                 System.gc();
  154.                 TextView tv = new TextView(mContext.getApplicationContext());
  155.                 String id = null;
  156.                 if (convertView == null) {
  157.                       music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST);
  158.                       musiccursor.moveToPosition(position);
  159.                       id = musiccursor.getString(music_column_index);
  160.                       music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE);
  161.                       musiccursor.moveToPosition(position);
  162.                       id += " - " + musiccursor.getString(music_column_index);
  163.                       tv.setText(id);
  164.                 } else
  165.                       tv = (TextView) convertView;
  166.                 return tv;
  167.           }
  168.         }
  169.      
  170.         @Override
  171.         public void run() {
  172.             // TODO Auto-generated method stub
  173.             try {
  174.                 while(mp != null){
  175.                     int currentPosition = mp.getCurrentPosition();
  176.                     Message msg = new Message();
  177.                     msg.what = currentPosition;
  178.                     threadHandler.sendMessage(msg);
  179.                 }
  180.                 Thread.sleep(100);
  181.             } catch (InterruptedException e) {
  182.                 // TODO Auto-generated catch block
  183.                 e.printStackTrace();
  184.             }
  185.         }
  186.        
  187.     private Handler threadHandler = new Handler(){
  188.         public void handleMessage(Message msg){
  189.             //super.handleMessage(msg);
  190.             //txt.setText(Integer.toString(msg.what));
  191.             progress.setProgress(msg.what);
  192.         }
  193.     };
  194.      
  195.       public void play (View view) {
  196.           if (mp.isPlaying ()) {
  197.               mp.pause();
  198.           }
  199.           else {
  200.               mp.start();
  201.           }
  202.       }
  203.      
  204.       public void stop (View view) {
  205.           mp.stop();
  206.       }
  207.      
  208.       private Cursor getPlaylists(String playlistId){
  209.           Cursor cursor = null;
  210.           String[] projection1 = {
  211.                   MediaStore.Audio.Playlists._ID,
  212.                   MediaStore.Audio.Playlists.NAME
  213.                   };
  214.           cursor = this.managedQuery(
  215.                   MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
  216.                   projection1,
  217.                   MediaStore.Audio.Playlists._ID+ " = "+playlistId+"",
  218.                   null, null);
  219.           startManagingCursor(cursor);
  220.           cursor.moveToFirst();
  221.           Long playlist_id2 = cursor.getLong(0);
  222.           if(playlist_id2 > 0){
  223.               String[] projection = {
  224.                       MediaStore.Audio.Playlists.Members.AUDIO_ID,
  225.                       MediaStore.Audio.Playlists.Members.ARTIST,
  226.                       MediaStore.Audio.Playlists.Members.TITLE,
  227.                       MediaStore.Audio.Playlists.Members._ID
  228.                       };
  229.               cursor = null;
  230.               cursor = this.managedQuery(
  231.                       MediaStore.Audio.Playlists.Members.getContentUri("external",playlist_id2 ),
  232.                       projection,
  233.                       MediaStore.Audio.Media.IS_MUSIC +" != 0 ",
  234.                       null, null);
  235.               }
  236.           return cursor;
  237.       }
  238.      
  239.       @Override
  240.       public boolean onCreateOptionsMenu(Menu menu) {
  241.           MenuInflater inflater = getMenuInflater();
  242.           inflater.inflate(R.menu.menu, menu);
  243.           return true;
  244.       }
  245.      
  246.       public void listsCursor () {
  247.           String[] projection1 = {
  248.                   MediaStore.Audio.Playlists._ID,
  249.                   MediaStore.Audio.Playlists.NAME
  250.                   };
  251.           listcursor = this.managedQuery(
  252.                   MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
  253.                   projection1,
  254.                   null,
  255.                   null, null);
  256.           startManagingCursor(listcursor);
  257.           listcursor.moveToFirst();
  258.       }
  259.      
  260.       @Override
  261.       public boolean onOptionsItemSelected(MenuItem playlists) {
  262.          
  263.           setContentView(R.layout.lijsten);
  264.          
  265.           System.gc();
  266.           String[] proj = { MediaStore.Audio.Playlists._ID,
  267.           MediaStore.Audio.Playlists.NAME};
  268.           listcursor = managedQuery(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
  269.           proj, null, null, null);
  270.           listcount = listcursor.getCount();
  271.           ListList = (ListView) findViewById(R.id.PlayListList);
  272.           ListList.setAdapter(new ListAdapter(getApplicationContext()));
  273.           ListList.setOnItemClickListener(listgridlistener);
  274.  
  275.          
  276.           return super.onOptionsItemSelected(playlists);
  277.       }
  278. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement