Java 类android.provider.MediaStore.Audio 实例源码

项目:FireFiles    文件:StorageProvider.java   
protected ParcelFileDescriptor openAudioThumbnailCleared(long id, CancellationSignal signal)
        throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();

    Cursor cursor = null;
    try {
        cursor = resolver.query(Audio.Albums.EXTERNAL_CONTENT_URI,
                AudioThumbnailQuery.PROJECTION, Audio.Albums._ID + "=" + id,
                null, null);
        if (cursor.moveToFirst()) {
            final String data = cursor.getString(AudioThumbnailQuery._DATA);
            return ParcelFileDescriptor.open(
                    new File(data), ParcelFileDescriptor.MODE_READ_ONLY);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    return null;
}
项目:simple-share-android    文件:StorageProvider.java   
protected ParcelFileDescriptor openAudioThumbnailCleared(long id, CancellationSignal signal)
        throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();

    Cursor cursor = null;
    try {
        cursor = resolver.query(Audio.Albums.EXTERNAL_CONTENT_URI,
                AudioThumbnailQuery.PROJECTION, Audio.Albums._ID + "=" + id,
                null, null);
        if (cursor.moveToFirst()) {
            final String data = cursor.getString(AudioThumbnailQuery._DATA);
            return ParcelFileDescriptor.open(
                    new File(data), ParcelFileDescriptor.MODE_READ_ONLY);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    return null;
}
项目:TextSecure    文件:AudioSlide.java   
public static PduPart constructPartFromUri(Context context, Uri uri) throws IOException, MediaTooLargeException {
  PduPart part = new PduPart();

  assertMediaSize(context, uri);

  Cursor cursor = null;

  try {
    cursor = context.getContentResolver().query(uri, new String[]{Audio.Media.MIME_TYPE}, null, null, null);

    if (cursor != null && cursor.moveToFirst())
      part.setContentType(cursor.getString(0).getBytes());
    else
      throw new IOException("Unable to query content type.");
  } finally {
    if (cursor != null)
      cursor.close();
  } 

  part.setDataUri(uri);
  part.setContentId((System.currentTimeMillis()+"").getBytes());
  part.setName(("Audio" + System.currentTimeMillis()).getBytes());

  return part;
}
项目:mobile-manager-tool    文件:QueryBrowserActivity.java   
private Cursor getQueryCursor(AsyncQueryHandler async, String filter) {
    if (filter == null) {
        filter = "";
    }
    String[] ccols = new String[] {
            BaseColumns._ID, Audio.Media.MIME_TYPE, Audio.Artists.ARTIST, Audio.Albums.ALBUM,
            Audio.Media.TITLE, "data1", "data2"
    };

    Uri search = Uri.parse("content://media/external/audio/search/fancy/" + Uri.encode(filter));

    Cursor ret = null;
    if (async != null) {
        async.startQuery(0, null, search, ccols, null, null, null);
    } else {
        ret = MusicUtils.query(this, search, ccols, null, null, null);
    }
    return ret;
}
项目:mobile-manager-tool    文件:TracksBrowser.java   
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    if (Audio.Artists.CONTENT_TYPE.equals(mimeType)) {

        menu.setHeaderTitle(R.string.image_edit_artists);
        getMenuInflater().inflate(R.menu.music_context_artistimage, menu);

    } else if (Audio.Albums.CONTENT_TYPE.equals(mimeType)) {

        menu.setHeaderTitle(R.string.image_edit_albums);
        getMenuInflater().inflate(R.menu.music_context_albumimage, menu);

    } else if (Playlists.CONTENT_TYPE.equals(mimeType)) {
        menu.setHeaderTitle(R.string.image_edit_playlist);
        getMenuInflater().inflate(R.menu.music_context_playlist_genreimage, menu);
    }
    else{
        menu.setHeaderTitle(R.string.image_edit_genre);
        getMenuInflater().inflate(R.menu.music_context_playlist_genreimage, menu);
    }
}
项目:mobile-manager-tool    文件:TracksBrowser.java   
public void onSearchWeb(){
    String query = "";
    if (Audio.Artists.CONTENT_TYPE.equals(mimeType)) {
        query = getArtist();
    } else if (Audio.Albums.CONTENT_TYPE.equals(mimeType)) {
        query = getAlbum() + " " + getArtist();
    } else if (Playlists.CONTENT_TYPE.equals(mimeType)) {
        query = bundle.getString(PLAYLIST_NAME);
    }
    else{
        Long id = bundle.getLong(BaseColumns._ID);
        query = MusicUtils.parseGenreName(this, MusicUtils.getGenreName(this, id, true));
    }
    final Intent googleSearch = new Intent(Intent.ACTION_WEB_SEARCH);
    googleSearch.putExtra(SearchManager.QUERY, query);
    startActivity(googleSearch);
}
项目:mobile-manager-tool    文件:ApolloService.java   
private boolean makeAutoShuffleList() {
    ContentResolver res = getContentResolver();
    Cursor c = null;
    try {
        c = res.query(Audio.Media.EXTERNAL_CONTENT_URI, new String[] {
            BaseColumns._ID
        }, AudioColumns.IS_MUSIC + "=1", null, null);
        if (c == null || c.getCount() == 0) {
            return false;
        }
        int len = c.getCount();
        long[] list = new long[len];
        for (int i = 0; i < len; i++) {
            c.moveToNext();
            list[i] = c.getLong(0);
        }
        mAutoShuffleList = list;
        return true;
    } catch (RuntimeException ex) {
    } finally {
        if (c != null) {
            c.close();
        }
    }
    return false;
}
项目:mobile-manager-tool    文件:QuickQueueFragment.java   
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    String[] projection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST,
    };
    StringBuilder selection = new StringBuilder();
    Uri uri = Audio.Media.EXTERNAL_CONTENT_URI;
    String sortOrder = Audio.Media.DEFAULT_SORT_ORDER;
    uri = Audio.Media.EXTERNAL_CONTENT_URI;
    long[] mNowPlaying = MusicUtils.getQueue();
    if (mNowPlaying.length == 0)
        return null;
    selection = new StringBuilder();
    selection.append(BaseColumns._ID + " IN (");
    if (mNowPlaying == null || mNowPlaying.length <= 0)
        return null;
    for (long queue_id : mNowPlaying) {
        selection.append(queue_id + ",");
    }
    selection.deleteCharAt(selection.length() - 1);
    selection.append(")");

    return new AddIdCursorLoader(getActivity(), uri, projection, selection.toString(), null,
            sortOrder);
}
项目:mobile-manager-tool    文件:QuickQueueFragment.java   
/**
 * Reload the queue after we remove a track
 */
private void reloadQueueCursor() {
    String[] projection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST,
    };
    StringBuilder selection = new StringBuilder();
    Uri uri = Audio.Media.EXTERNAL_CONTENT_URI;
    String sortOrder = Audio.Media.DEFAULT_SORT_ORDER;
    uri = Audio.Media.EXTERNAL_CONTENT_URI;
    long[] mNowPlaying = MusicUtils.getQueue();
    if (mNowPlaying.length == 0)
        return;
    selection = new StringBuilder();
    selection.append(BaseColumns._ID + " IN (");
    if (mNowPlaying == null || mNowPlaying.length <= 0)
        return;
    for (long queue_id : mNowPlaying) {
        selection.append(queue_id + ",");
    }
    selection.deleteCharAt(selection.length() - 1);
    selection.append(")");

    mCursor = MusicUtils.query(getActivity(), uri, projection, selection.toString(), null,
            sortOrder);
    mQuickQueueAdapter.changeCursor(mCursor);
}
项目:mobile-manager-tool    文件:AlbumListFragment.java   
@Override
public void setupFragmentData() {
       mAdapter = new AlbumListAdapter(getActivity(), R.layout.music_listview_items, null,
                                            new String[] {}, new int[] {}, 0);
    mProjection = new String[] {
               BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
       };
       StringBuilder where = new StringBuilder();
       where.append(AudioColumns.IS_MUSIC + "=1")
                        .append(" AND " + MediaColumns.TITLE + " != ''");
       long albumId = getArguments().getLong(BaseColumns._ID);
       where.append(" AND " + AudioColumns.ALBUM_ID + "=" + albumId);
       mWhere = where.toString();        
       mSortOrder = Audio.Media.TRACK + ", " + Audio.Media.DEFAULT_SORT_ORDER;
       mUri = Audio.Media.EXTERNAL_CONTENT_URI;
       mFragmentGroupId = 89;
       mType = TYPE_ALBUM;
       mTitleColumn = MediaColumns.TITLE; 
}
项目:mobile-manager-tool    文件:RecentlyAddedFragment.java   
public void setupFragmentData(){
    mAdapter = new RecentlyAddedAdapter(getActivity(), R.layout.music_listview_items,
            null, new String[] {}, new int[] {}, 0);
    mProjection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
    };
    StringBuilder where = new StringBuilder();
    int X = MusicUtils.getIntPref(getActivity(), NUMWEEKS, 5) * 3600 * 24 * 7;
    where.append(MediaColumns.TITLE + " != ''");
    where.append(" AND " + AudioColumns.IS_MUSIC + "=1");
    where.append(" AND " + MediaColumns.DATE_ADDED + ">"
            + (System.currentTimeMillis() / 1000 - X));
    mWhere = where.toString();
    mSortOrder = MediaColumns.DATE_ADDED + " DESC";
    mUri = Audio.Media.EXTERNAL_CONTENT_URI;
    mTitleColumn = MediaColumns.TITLE;       
}
项目:mobile-manager-tool    文件:ArtistListFragment.java   
@Override
public void setupFragmentData(){
    mAdapter = new ArtistListAdapter(getActivity(), R.layout.music_listview_items, null,
                                            new String[] {}, new int[] {}, 0);
    mProjection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
    };
    StringBuilder where = new StringBuilder();
    where.append(AudioColumns.IS_MUSIC + "=1")
                        .append(" AND " + MediaColumns.TITLE + " != ''");
    long artist_id = getArguments().getLong(BaseColumns._ID);
    where.append(" AND " + AudioColumns.ARTIST_ID + "=" + artist_id);
    mWhere = where.toString();        
    mSortOrder = MediaColumns.TITLE;
    mUri = Audio.Media.EXTERNAL_CONTENT_URI;
    mFragmentGroupId = 88;
    mType = TYPE_ARTIST;
    mTitleColumn = MediaColumns.TITLE; 
}
项目:mobile-manager-tool    文件:PlaylistDialog.java   
private int idForplaylist(String name) {

        Cursor cursor = MusicUtils.query(this, Audio.Playlists.EXTERNAL_CONTENT_URI, new String[] {
            Audio.Playlists._ID
        }, Audio.Playlists.NAME + "=?", new String[] {
            name
        }, Audio.Playlists.NAME, 0);
        int id = -1;
        if (cursor != null) {
            cursor.moveToFirst();
            if (!cursor.isAfterLast()) {
                id = cursor.getInt(0);
            }
            cursor.close();
        }

        return id;
    }
项目:mobile-manager-tool    文件:PlaylistDialog.java   
private String nameForId(long id) {

        Cursor cursor = MusicUtils.query(this, Audio.Playlists.EXTERNAL_CONTENT_URI, new String[] {
            Audio.Playlists.NAME
        }, Audio.Playlists._ID + "=?", new String[] {
            Long.valueOf(id).toString()
        }, Audio.Playlists.NAME);
        String name = null;
        if (cursor != null) {
            cursor.moveToFirst();
            if (!cursor.isAfterLast()) {
                name = cursor.getString(0);
            }
            cursor.close();
        }
        return name;
    }
项目:TextSecureSMP    文件:AudioSlide.java   
public static PduPart constructPartFromUri(Context context, Uri uri) throws IOException, MediaTooLargeException {
  PduPart part = new PduPart();

  assertMediaSize(context, uri);

  Cursor cursor = null;

  try {
    cursor = context.getContentResolver().query(uri, new String[]{Audio.Media.MIME_TYPE}, null, null, null);

    if (cursor != null && cursor.moveToFirst())
      part.setContentType(cursor.getString(0).getBytes());
    else
      throw new IOException("Unable to query content type.");
  } finally {
    if (cursor != null)
      cursor.close();
  } 

  part.setDataUri(uri);
  part.setContentId((System.currentTimeMillis()+"").getBytes());
  part.setName(("Audio" + System.currentTimeMillis()).getBytes());

  return part;
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param cursor
 * @return
 */
public static long[] getSongListForCursor(Cursor cursor) {
    if (cursor == null) {
        return sEmptyList;
    }
    int len = cursor.getCount();
    long[] list = new long[len];
    cursor.moveToFirst();
    int colidx = -1;
    try {
        colidx = cursor.getColumnIndexOrThrow(Audio.Playlists.Members.AUDIO_ID);
    } catch (IllegalArgumentException ex) {
        colidx = cursor.getColumnIndexOrThrow(BaseColumns._ID);
    }
    for (int i = 0; i < len; i++) {
        list[i] = cursor.getLong(colidx);
        cursor.moveToNext();
    }
    return list;
}
项目:Securecom-Messaging    文件:AudioSlide.java   
public static PduPart constructPartFromUri(Context context, Uri uri) throws IOException, MediaTooLargeException {
  PduPart part = new PduPart();

  if (getMediaSize(context, uri) > MAX_MESSAGE_SIZE)
    throw new MediaTooLargeException("Audio track larger than size maximum.");

  Cursor cursor = null;

  try {
    cursor = context.getContentResolver().query(uri, new String[]{Audio.Media.MIME_TYPE}, null, null, null);

    if (cursor != null && cursor.moveToFirst())
      part.setContentType(cursor.getString(0).getBytes());
    else
      throw new IOException("Unable to query content type.");
  } finally {
    if (cursor != null)
      cursor.close();
  } 

  part.setDataUri(uri);
  part.setContentId((System.currentTimeMillis()+"").getBytes());
  part.setName(("Audio" + System.currentTimeMillis()).getBytes());

  return part;
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param context
 * @param id
 * @return
 */
public static long[] getSongListForArtist(Context context, long id) {
    final String[] projection = new String[] {
        BaseColumns._ID
    };
    String selection = AudioColumns.ARTIST_ID + "=" + id + " AND " + AudioColumns.IS_MUSIC
            + "=1";
    String sortOrder = AudioColumns.ALBUM_KEY + "," + AudioColumns.TRACK;
    Uri uri = Audio.Media.EXTERNAL_CONTENT_URI;
    Cursor cursor = query(context, uri, projection, selection, null, sortOrder);
    if (cursor != null) {
        long[] list = getSongListForCursor(cursor);
        cursor.close();
        return list;
    }
    return sEmptyList;
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param context
 * @param id
 * @return
 */
public static long[] getSongListForAlbum(Context context, long id) {
    final String[] projection = new String[] {
        BaseColumns._ID
    };
    String selection = AudioColumns.ALBUM_ID + "=" + id + " AND " + AudioColumns.IS_MUSIC
            + "=1";
    String sortOrder = AudioColumns.TRACK;
    Uri uri = Audio.Media.EXTERNAL_CONTENT_URI;
    Cursor cursor = query(context, uri, projection, selection, null, sortOrder);
    if (cursor != null) {
        long[] list = getSongListForCursor(cursor);
        cursor.close();
        return list;
    }
    return sEmptyList;
}
项目:xPlodMusic    文件:MusicUtils.java   
/**
 * @param context
 * @return
 */
public static long getFavoritesId(Context context) {
    long favorites_id = -1;
    String favorites_where = PlaylistsColumns.NAME + "='" + "Favorites" + "'";
    String[] favorites_cols = new String[] {
        BaseColumns._ID
    };
    Uri favorites_uri = Audio.Playlists.EXTERNAL_CONTENT_URI;
    Cursor cursor = query(context, favorites_uri, favorites_cols, favorites_where, null, null);
    if (cursor.getCount() <= 0) {
        favorites_id = createPlaylist(context, "Favorites");
    } else {
        cursor.moveToFirst();
        favorites_id = cursor.getLong(0);
        cursor.close();
    }
    return favorites_id;
}
项目:itmarry    文件:ArtistAlbumsFragment.java   
/**
 * @param index
 * @param id
 */
private void tracksBrowser(long id) {
    String artistName = mCursor.getString(mArtistNameIndex);
    String albumName = mCursor.getString(mAlbumNameIndex);
    String albumId = mCursor.getString(mAlbumIdIndex);

    Bundle bundle = new Bundle();
    bundle.putString(MIME_TYPE, Audio.Albums.CONTENT_TYPE);
    bundle.putString(ALBUM_KEY, albumName);
    bundle.putString(ALBUM_ID_KEY, albumId);
    bundle.putString(ARTIST_KEY, artistName);
    bundle.putLong(BaseColumns._ID, id);

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setClass(getActivity(), TracksBrowser.class);
    intent.putExtras(bundle);
    getActivity().startActivity(intent);
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param context
 * @param id
 */
public static void removeFromFavorites(Context context, long id) {
    long favorites_id;
    if (id < 0) {
    } else {
        ContentResolver resolver = context.getContentResolver();
        String favorites_where = PlaylistsColumns.NAME + "='" + PLAYLIST_NAME_FAVORITES + "'";
        String[] favorites_cols = new String[] {
            BaseColumns._ID
        };
        Uri favorites_uri = Audio.Playlists.EXTERNAL_CONTENT_URI;
        Cursor cursor = resolver.query(favorites_uri, favorites_cols, favorites_where, null,
                null);
        if (cursor.getCount() <= 0) {
            favorites_id = createPlaylist(context, PLAYLIST_NAME_FAVORITES);
        } else {
            cursor.moveToFirst();
            favorites_id = cursor.getLong(0);
            cursor.close();
        }
        Uri uri = Playlists.Members.getContentUri(EXTERNAL, favorites_id);
        resolver.delete(uri, Playlists.Members.AUDIO_ID + "=" + id, null);
    }
}
项目:Orpheus    文件:RenamePlaylist.java   
/**
 * {@inheritDoc}
 */
@Override
public void onSaveClick() {
    final String playlistName = mPlaylist.getText().toString();
    if (playlistName != null && playlistName.length() > 0) {
        final ContentResolver resolver = getActivity().getContentResolver();
        final ContentValues values = new ContentValues(1);
        values.put(Audio.Playlists.NAME, Capitalize.capitalize(playlistName));
        resolver.update(Audio.Playlists.EXTERNAL_CONTENT_URI, values,
                MediaStore.Audio.Playlists._ID + "=?", new String[]{
                        String.valueOf(mRenameId)
                }
        );
        resolver.notifyChange(Uris.EXTERNAL_MEDIASTORE_PLAYLISTS, null);
        closeKeyboard();
        getDialog().dismiss();
    }
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param playlist_id
 * @return playlist name
 */
public static String getPlaylistName(Context mContext, long playlist_id) {
    String where = BaseColumns._ID + "=" + playlist_id;
    String[] cols = new String[] {
        PlaylistsColumns.NAME
    };
    Uri uri = Audio.Playlists.EXTERNAL_CONTENT_URI;
    Cursor cursor = mContext.getContentResolver().query(uri, cols, where, null, null);
    if (cursor == null){
        return "";
    }
    if (cursor.getCount() <= 0)
        return "";
    cursor.moveToFirst();
    String name = cursor.getString(0);
    cursor.close();
    return name;
}
项目:com.cp.monsterMod    文件:QueryBrowserActivity.java   
private Cursor getQueryCursor(AsyncQueryHandler async, String filter) {
    if (filter == null) {
        filter = "";
    }
    String[] ccols = new String[] {
            BaseColumns._ID, Audio.Media.MIME_TYPE, Audio.Artists.ARTIST, Audio.Albums.ALBUM,
            Audio.Media.TITLE, "data1", "data2"
    };

    Uri search = Uri.parse("content://media/external/audio/search/fancy/" + Uri.encode(filter));

    Cursor ret = null;
    if (async != null) {
        async.startQuery(0, null, search, ccols, null, null, null);
    } else {
        ret = MusicUtils.query(this, search, ccols, null, null, null);
    }
    return ret;
}
项目:xPlodMusic    文件:MusicUtils.java   
/**
 * @param context
 * @param id
 * @return
 */
public static long[] getSongListForAlbum(Context context, long id) {
    final String[] projection = new String[] {
        BaseColumns._ID
    };
    String selection = AudioColumns.ALBUM_ID + "=" + id + " AND " + AudioColumns.IS_MUSIC
            + "=1";
    String sortOrder = AudioColumns.TRACK;
    Uri uri = Audio.Media.EXTERNAL_CONTENT_URI;
    Cursor cursor = query(context, uri, projection, selection, null, sortOrder);
    if (cursor != null) {
        long[] list = getSongListForCursor(cursor);
        cursor.close();
        return list;
    }
    return sEmptyList;
}
项目:com.cp.monsterMod    文件:TracksBrowser.java   
public void onSearchWeb(){
    String query = "";
    if (Audio.Artists.CONTENT_TYPE.equals(mimeType)) {
        query = getArtist();
    } else if (Audio.Albums.CONTENT_TYPE.equals(mimeType)) {
        query = getAlbum() + " " + getArtist();
    } else if (Audio.Playlists.CONTENT_TYPE.equals(mimeType)) {
        query = bundle.getString(PLAYLIST_NAME);
    }
    else{
        Long id = bundle.getLong(BaseColumns._ID);
        query = MusicUtils.parseGenreName(this, MusicUtils.getGenreName(this, id, true));
    }
    final Intent googleSearch = new Intent(Intent.ACTION_WEB_SEARCH);
    googleSearch.putExtra(SearchManager.QUERY, query);
    startActivity(googleSearch);    
}
项目:itmarry    文件:AudioPlayerFragment.java   
/**
 * Takes you into the @TracksBrowser to view all of the tracks on the
 * current album
 */
private void tracksBrowser() {

    String artistName = MusicUtils.getArtistName();
    String albumName = MusicUtils.getAlbumName();
    String albumId = String.valueOf(MusicUtils.getCurrentAlbumId());
    long id = MusicUtils.getCurrentAlbumId();

    Bundle bundle = new Bundle();
    bundle.putString(MIME_TYPE, Audio.Albums.CONTENT_TYPE);
    bundle.putString(ARTIST_KEY, artistName);
    bundle.putString(ALBUM_KEY, albumName);
    bundle.putString(ALBUM_ID_KEY, albumId);
    bundle.putLong(BaseColumns._ID, id);

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setClass(getActivity(), TracksBrowser.class);
    intent.putExtras(bundle);
    getActivity().startActivity(intent);
}
项目:xPlodMusic    文件:RecentlyAddedFragment.java   
public void setupFragmentData(){
    mAdapter = new RecentlyAddedAdapter(getActivity(), R.layout.listview_items,
            null, new String[] {}, new int[] {}, 0);
    mProjection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
    };
    StringBuilder where = new StringBuilder();
    int X = MusicUtils.getIntPref(getActivity(), NUMWEEKS, 5) * 3600 * 24 * 7;
    where.append(MediaColumns.TITLE + " != ''");
    where.append(" AND " + AudioColumns.IS_MUSIC + "=1");
    where.append(" AND " + MediaColumns.DATE_ADDED + ">"
            + (System.currentTimeMillis() / 1000 - X));
    mWhere = where.toString();
    mSortOrder = MediaColumns.DATE_ADDED + " DESC";
    mUri = Audio.Media.EXTERNAL_CONTENT_URI;
    mTitleColumn = MediaColumns.TITLE;       
}
项目:com.cp.monsterMod    文件:QuickQueueFragment.java   
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    String[] projection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST,
    };
    StringBuilder selection = new StringBuilder();
    Uri uri = Audio.Media.EXTERNAL_CONTENT_URI;
    String sortOrder = Audio.Media.DEFAULT_SORT_ORDER;
    uri = Audio.Media.EXTERNAL_CONTENT_URI;
    long[] mNowPlaying = MusicUtils.getQueue();
    if (mNowPlaying.length == 0)
        return null;
    selection = new StringBuilder();
    selection.append(BaseColumns._ID + " IN (");
    if (mNowPlaying == null || mNowPlaying.length <= 0)
        return null;
    for (long queue_id : mNowPlaying) {
        selection.append(queue_id + ",");
    }
    selection.deleteCharAt(selection.length() - 1);
    selection.append(")");

    return new AddIdCursorLoader(getActivity(), uri, projection, selection.toString(), null,
            sortOrder);
}
项目:com.cp.monsterMod    文件:QuickQueueFragment.java   
/**
 * Reload the queue after we remove a track
 */
private void reloadQueueCursor() {
    String[] projection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST,
    };
    StringBuilder selection = new StringBuilder();
    Uri uri = Audio.Media.EXTERNAL_CONTENT_URI;
    String sortOrder = Audio.Media.DEFAULT_SORT_ORDER;
    uri = Audio.Media.EXTERNAL_CONTENT_URI;
    long[] mNowPlaying = MusicUtils.getQueue();
    if (mNowPlaying.length == 0)
        return;
    selection = new StringBuilder();
    selection.append(BaseColumns._ID + " IN (");
    if (mNowPlaying == null || mNowPlaying.length <= 0)
        return;
    for (long queue_id : mNowPlaying) {
        selection.append(queue_id + ",");
    }
    selection.deleteCharAt(selection.length() - 1);
    selection.append(")");

    mCursor = MusicUtils.query(getActivity(), uri, projection, selection.toString(), null,
            sortOrder);
    mQuickQueueAdapter.changeCursor(mCursor);
}
项目:com.cp.monsterMod    文件:AlbumListFragment.java   
@Override
public void setupFragmentData() {
       mAdapter = new AlbumListAdapter(getActivity(), R.layout.listview_items, null,
                                            new String[] {}, new int[] {}, 0);
    mProjection = new String[] {
               BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
       };
       StringBuilder where = new StringBuilder();
       where.append(AudioColumns.IS_MUSIC + "=1")
                        .append(" AND " + MediaColumns.TITLE + " != ''");
       long albumId = getArguments().getLong(BaseColumns._ID);
       where.append(" AND " + AudioColumns.ALBUM_ID + "=" + albumId);
       mWhere = where.toString();        
       mSortOrder = Audio.Media.TRACK + ", " + Audio.Media.DEFAULT_SORT_ORDER;
       mUri = Audio.Media.EXTERNAL_CONTENT_URI;
       mFragmentGroupId = 89;
       mType = TYPE_ALBUM;
       mTitleColumn = MediaColumns.TITLE; 
}
项目:com.cp.monsterMod    文件:RecentlyAddedFragment.java   
public void setupFragmentData(){
    mAdapter = new RecentlyAddedAdapter(getActivity(), R.layout.listview_items,
            null, new String[] {}, new int[] {}, 0);
    //构造查询语句,父类中回调,给cursorloader使用
    mProjection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
    };
    StringBuilder where = new StringBuilder();
    int X = MusicUtils.getIntPref(getActivity(), NUMWEEKS, 5) * 3600 * 24 * 7;
    where.append(MediaColumns.TITLE + " != ''");
    where.append(" AND " + AudioColumns.IS_MUSIC + "=1");
    where.append(" AND " + MediaColumns.DATE_ADDED + ">"
            + (System.currentTimeMillis() / 1000 - X));
    mWhere = where.toString();
    mSortOrder = MediaColumns.DATE_ADDED + " DESC";
    //查询音乐的uri?
    mUri = Audio.Media.EXTERNAL_CONTENT_URI;
    mTitleColumn = MediaColumns.TITLE;       
}
项目:xPlodMusic    文件:ArtistListFragment.java   
@Override
public void setupFragmentData(){
    mAdapter = new ArtistListAdapter(getActivity(), R.layout.listview_items, null,
                                            new String[] {}, new int[] {}, 0);
    mProjection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
    };
    StringBuilder where = new StringBuilder();
    where.append(AudioColumns.IS_MUSIC + "=1")
                        .append(" AND " + MediaColumns.TITLE + " != ''");
    long artist_id = getArguments().getLong(BaseColumns._ID);
    where.append(" AND " + AudioColumns.ARTIST_ID + "=" + artist_id);
    mWhere = where.toString();        
    mSortOrder = MediaColumns.TITLE;
    mUri = Audio.Media.EXTERNAL_CONTENT_URI;
    mFragmentGroupId = 88;
    mType = TYPE_ARTIST;
    mTitleColumn = MediaColumns.TITLE; 
}
项目:com.cp.monsterMod    文件:SongsFragment.java   
public void setupFragmentData(){
    mAdapter = new SonglistAdapter(getActivity(), R.layout.listview_items, null,
                                                    new String[] {}, new int[] {}, 0);
    mProjection = new String[] {
            BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
    };
    StringBuilder where = new StringBuilder();
    where.append(AudioColumns.IS_MUSIC + "=1").append(" AND " + MediaColumns.TITLE + " != ''");
    mWhere = where.toString();
    mSortOrder = Audio.Media.DEFAULT_SORT_ORDER;
    mUri = Audio.Media.EXTERNAL_CONTENT_URI;
    mFragmentGroupId = 3;
    mType = TYPE_SONG;
    mTitleColumn = MediaColumns.TITLE;         
    View shuffle_temp = View.inflate(getActivity(), R.layout.shuffle_all, null);
    mListView.addHeaderView(shuffle_temp);        
    RelativeLayout  shuffle = (RelativeLayout)shuffle_temp.findViewById(R.id.shuffle_wrapper);
    shuffle.setVisibility(View.VISIBLE);
    shuffle.setOnClickListener(new RelativeLayout.OnClickListener() {  
        public void onClick(View v)
        {
            MusicUtils.suffle(getActivity());
        }

     });
}
项目:itmarry    文件:TracksFragment.java   
/**
 * Check if we're viewing the contents of a playlist
 */
public void isEditMode() {
    if (getArguments() != null) {
        String mimetype = getArguments().getString(MIME_TYPE);
        if (Audio.Playlists.CONTENT_TYPE.equals(mimetype)) {
            mPlaylistId = getArguments().getLong(BaseColumns._ID);
            switch ((int)mPlaylistId) {
                case (int)PLAYLIST_QUEUE:
                    mEditMode = true;
                    break;
                case (int)PLAYLIST_FAVORITES:
                    mEditMode = true;
                    break;
                default:
                    if (mPlaylistId > 0) {
                        mEditMode = true;
                    }
                    break;
            }
        }
    }
}
项目:com.cp.monsterMod    文件:PlaylistDialog.java   
private int idForplaylist(String name) {

        Cursor cursor = MusicUtils.query(this, Audio.Playlists.EXTERNAL_CONTENT_URI, new String[] {
            Audio.Playlists._ID
        }, Audio.Playlists.NAME + "=?", new String[] {
            name
        }, Audio.Playlists.NAME, 0);
        int id = -1;
        if (cursor != null) {
            cursor.moveToFirst();
            if (!cursor.isAfterLast()) {
                id = cursor.getInt(0);
            }
            cursor.close();
        }

        return id;
    }
项目:Player-by-TweekProject    文件:RenamePlaylist.java   
/**
 * {@inheritDoc}
 */
@Override
public void onSaveClick() {
    final String playlistName = mPlaylist.getText().toString();
    if (playlistName != null && playlistName.length() > 0) {
        final ContentResolver resolver = getSherlockActivity().getContentResolver();
        final ContentValues values = new ContentValues(1);
        values.put(Audio.Playlists.NAME, Capitalize.capitalize(playlistName));
        resolver.update(Audio.Playlists.EXTERNAL_CONTENT_URI, values,
                MediaStore.Audio.Playlists._ID + "=?", new String[] {
                    Long.valueOf(mRenameId).toString()
                });
        closeKeyboard();
        getDialog().dismiss();
    }
}
项目:itmarry    文件:MusicUtils.java   
/**
 * @param cursor
 * @return
 */
public static long[] getSongListForCursor(Cursor cursor) {
    if (cursor == null) {
        return sEmptyList;
    }
    int len = cursor.getCount();
    long[] list = new long[len];
    cursor.moveToFirst();
    int colidx = -1;
    try {
        colidx = cursor.getColumnIndexOrThrow(Audio.Playlists.Members.AUDIO_ID);
    } catch (IllegalArgumentException ex) {
        colidx = cursor.getColumnIndexOrThrow(BaseColumns._ID);
    }
    for (int i = 0; i < len; i++) {
        list[i] = cursor.getLong(colidx);
        cursor.moveToNext();
    }
    return list;
}
项目:itmarry    文件:MusicUtils.java   
/**
 * @param context
 * @param id
 * @return
 */
public static long[] getSongListForArtist(Context context, long id) {
    final String[] projection = new String[] {
        BaseColumns._ID
    };
    String selection = AudioColumns.ARTIST_ID + "=" + id + " AND " + AudioColumns.IS_MUSIC
            + "=1";
    String sortOrder = AudioColumns.ALBUM_KEY + "," + AudioColumns.TRACK;
    Uri uri = Audio.Media.EXTERNAL_CONTENT_URI;
    Cursor cursor = query(context, uri, projection, selection, null, sortOrder);
    if (cursor != null) {
        long[] list = getSongListForCursor(cursor);
        cursor.close();
        return list;
    }
    return sEmptyList;
}