类android.media.browse.MediaBrowser源码实例Demo

下面列出了怎么用android.media.browse.MediaBrowser的API类实例代码及写法,或者点击链接到github查看源代码。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    MediaBrowser.MediaItem item = getItem(position);
    int itemState = MediaItemViewHolder.STATE_NONE;
    if (item.isPlayable()) {
        String itemMediaId = item.getDescription().getMediaId();
        int playbackState = PlaybackState.STATE_NONE;
        if (mCurrentState != null) {
            playbackState = mCurrentState.getState();
        }
        if (mCurrentMetadata != null &&
                itemMediaId.equals(mCurrentMetadata.getDescription().getMediaId())) {
            if (playbackState == PlaybackState.STATE_PLAYING ||
                playbackState == PlaybackState.STATE_BUFFERING) {
                itemState = MediaItemViewHolder.STATE_PLAYING;
            } else if (playbackState != PlaybackState.STATE_ERROR) {
                itemState = MediaItemViewHolder.STATE_PAUSED;
            }
        }
    }
    return MediaItemViewHolder.setupView((Activity) getContext(), convertView, parent,
        item.getDescription(), itemState);
}
 
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    MediaBrowser.MediaItem item = getItem(position);
    int itemState = MediaItemViewHolder.STATE_NONE;
    if (item.isPlayable()) {
        String itemMediaId = item.getDescription().getMediaId();
        int playbackState = PlaybackState.STATE_NONE;
        if (mCurrentState != null) {
            playbackState = mCurrentState.getState();
        }
        if (mCurrentMetadata != null &&
                itemMediaId.equals(mCurrentMetadata.getDescription().getMediaId())) {
            if (playbackState == PlaybackState.STATE_PLAYING ||
                playbackState == PlaybackState.STATE_BUFFERING) {
                itemState = MediaItemViewHolder.STATE_PLAYING;
            } else if (playbackState != PlaybackState.STATE_ERROR) {
                itemState = MediaItemViewHolder.STATE_PAUSED;
            }
        }
    }
    return MediaItemViewHolder.setupView((Activity) getContext(), convertView, parent,
        item.getDescription(), itemState);
}
 
源代码3 项目: io2015-codelabs   文件: MusicPlayerActivity.java
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    MediaBrowser.MediaItem item = getItem(position);
    int itemState = MediaItemViewHolder.STATE_NONE;
    if (item.isPlayable()) {
        String itemMediaId = item.getDescription().getMediaId();
        int playbackState = PlaybackState.STATE_NONE;
        if (mCurrentState != null) {
            playbackState = mCurrentState.getState();
        }
        if (mCurrentMetadata != null &&
                itemMediaId.equals(mCurrentMetadata.getDescription().getMediaId())) {
            if (playbackState == PlaybackState.STATE_PLAYING ||
                playbackState == PlaybackState.STATE_BUFFERING) {
                itemState = MediaItemViewHolder.STATE_PLAYING;
            } else if (playbackState != PlaybackState.STATE_ERROR) {
                itemState = MediaItemViewHolder.STATE_PAUSED;
            }
        }
    }
    return MediaItemViewHolder.setupView((Activity) getContext(), convertView, parent,
        item.getDescription(), itemState);
}
 
源代码4 项目: io2015-codelabs   文件: MusicPlayerActivity.java
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    MediaBrowser.MediaItem item = getItem(position);
    int itemState = MediaItemViewHolder.STATE_NONE;
    if (item.isPlayable()) {
        String itemMediaId = item.getDescription().getMediaId();
        int playbackState = PlaybackState.STATE_NONE;
        if (mCurrentState != null) {
            playbackState = mCurrentState.getState();
        }
        if (mCurrentMetadata != null &&
                itemMediaId.equals(mCurrentMetadata.getDescription().getMediaId())) {
            if (playbackState == PlaybackState.STATE_PLAYING ||
                playbackState == PlaybackState.STATE_BUFFERING) {
                itemState = MediaItemViewHolder.STATE_PLAYING;
            } else if (playbackState != PlaybackState.STATE_ERROR) {
                itemState = MediaItemViewHolder.STATE_PAUSED;
            }
        }
    }
    return MediaItemViewHolder.setupView((Activity) getContext(), convertView, parent,
        item.getDescription(), itemState);
}
 
private MediaBrowser.MediaItem generatePlayableMediaItem( Song song ) {
    if( song == null )
        return null;

    MediaDescription.Builder mediaDescriptionBuilder = new MediaDescription.Builder();
    mediaDescriptionBuilder.setMediaId( song.getuId() );

    if( !TextUtils.isEmpty( song.getTitle() ) )
        mediaDescriptionBuilder.setTitle( song.getTitle() );

    if( !TextUtils.isEmpty( song.getArtist() ) )
        mediaDescriptionBuilder.setSubtitle( song.getArtist() );

    if( !TextUtils.isEmpty( song.getThumbnailUrl() ) )
        mediaDescriptionBuilder.setIconUri( Uri.parse( song.getThumbnailUrl() ) );

    return new MediaBrowser.MediaItem( mediaDescriptionBuilder.build(), MediaBrowser.MediaItem.FLAG_PLAYABLE );
}
 
源代码6 项目: Muzesto   文件: WearBrowserService.java
private void fillMediaItems(List<MediaBrowser.MediaItem> mediaItems, String mediaId, String title, Uri icon, String subTitle, int playableOrBrowsable) {
    mediaItems.add(new MediaBrowser.MediaItem(
            new MediaDescription.Builder()
                    .setMediaId(mediaId)
                    .setTitle(title)
                    .setIconUri(icon)
                    .setSubtitle(subTitle)
                    .build(), playableOrBrowsable
    ));
}
 
源代码7 项目: android-music-player   文件: MusicLibrary.java
public static List<MediaBrowser.MediaItem> getMediaItems() {
    List<MediaBrowser.MediaItem> result = new ArrayList<>();
    for (MediaMetadata metadata: music.values()) {
        result.add(new MediaBrowser.MediaItem(metadata.getDescription(),
                MediaBrowser.MediaItem.FLAG_PLAYABLE));
    }
    return result;
}
 
private void onMediaItemSelected(MediaBrowser.MediaItem item) {
    if (item.isPlayable()) {
        // ------------ CHANGE 2 - REMOVE FOLLOWING LINES FOR PLAYBACK ON A SERVICE
        MediaMetadata metadata = MusicLibrary.getMetadata(this, item.getMediaId());
        mPlaybackManager.play(metadata);
        updateMetadata(metadata);

        /* ------------ CHANGE 2 - UNCOMMENT FOLLOWING LINES FOR PLAYBACK ON A SERVICE
        getMediaController().getTransportControls().playFromMediaId(item.getMediaId(), null);
        // ------------ CHANGE 2 - END OF PLAYBACK ON A SERVICE SNIPPET */
    }
}
 
源代码9 项目: android-music-player   文件: MusicLibrary.java
public static List<MediaBrowser.MediaItem> getMediaItems() {
    List<MediaBrowser.MediaItem> result = new ArrayList<>();
    for (MediaMetadata metadata: music.values()) {
        result.add(new MediaBrowser.MediaItem(metadata.getDescription(),
                MediaBrowser.MediaItem.FLAG_PLAYABLE));
    }
    return result;
}
 
源代码10 项目: android-music-player   文件: MusicPlayerActivity.java
@Override
public void onStart() {
    super.onStart();

    mMediaBrowser = new MediaBrowser(this,
           new ComponentName(this, MusicService.class), mConnectionCallback, null);
    mMediaBrowser.connect();
}
 
源代码11 项目: io2015-codelabs   文件: MusicLibrary.java
public static List<MediaBrowser.MediaItem> getMediaItems() {
    List<MediaBrowser.MediaItem> result = new ArrayList<>();
    for (MediaMetadata metadata: music.values()) {
        result.add(new MediaBrowser.MediaItem(metadata.getDescription(),
                MediaBrowser.MediaItem.FLAG_PLAYABLE));
    }
    return result;
}
 
源代码12 项目: io2015-codelabs   文件: MusicPlayerActivity.java
private void onMediaItemSelected(MediaBrowser.MediaItem item) {
    if (item.isPlayable()) {
        // ------------ CHANGE 2 - REMOVE FOLLOWING LINES FOR PLAYBACK ON A SERVICE
        MediaMetadata metadata = MusicLibrary.getMetadata(this, item.getMediaId());
        mPlaybackManager.play(metadata);
        updateMetadata(metadata);

        /* ------------ CHANGE 2 - UNCOMMENT FOLLOWING LINES FOR PLAYBACK ON A SERVICE
        getMediaController().getTransportControls().playFromMediaId(item.getMediaId(), null);
        // ------------ CHANGE 2 - END OF PLAYBACK ON A SERVICE SNIPPET */
    }
}
 
源代码13 项目: io2015-codelabs   文件: MusicLibrary.java
public static List<MediaBrowser.MediaItem> getMediaItems() {
    List<MediaBrowser.MediaItem> result = new ArrayList<>();
    for (MediaMetadata metadata: music.values()) {
        result.add(new MediaBrowser.MediaItem(metadata.getDescription(),
                MediaBrowser.MediaItem.FLAG_PLAYABLE));
    }
    return result;
}
 
源代码14 项目: io2015-codelabs   文件: MusicPlayerActivity.java
@Override
public void onStart() {
    super.onStart();

    mMediaBrowser = new MediaBrowser(this,
           new ComponentName(this, MusicService.class), mConnectionCallback, null);
    mMediaBrowser.connect();
}
 
@Override
public void onLoadChildren(String parentId, Result<List<MediaBrowser.MediaItem>> result) {

    List<MediaBrowser.MediaItem> items = getMediaItemsById( parentId );
    if( items != null ) {
        result.sendResult( items );
    }

}
 
private List<MediaBrowser.MediaItem> getMediaItemsById( String id ) {
    List<MediaBrowser.MediaItem> mediaItems = new ArrayList<MediaBrowser.MediaItem>();
    if( BROWSEABLE_ROOT.equalsIgnoreCase( id ) ) {
        mediaItems.add( generateBrowseableMediaItemByGenre(BROWSEABLE_CAJUN) );
        mediaItems.add( generateBrowseableMediaItemByGenre(BROWSEABLE_JAZZ) );
        mediaItems.add( generateBrowseableMediaItemByGenre(BROWSEABLE_ROCK) );
    } else if( !TextUtils.isEmpty( id ) ) {
        return getPlayableMediaItemsByGenre( id );
    }

    return mediaItems;
}
 
private List<MediaBrowser.MediaItem> getPlayableMediaItemsByGenre( String genre ) {
    if( TextUtils.isEmpty( genre ) )
        return null;

    List<MediaBrowser.MediaItem> mediaItems = new ArrayList();

    for( Song song : mSongs ) {
        if( !TextUtils.isEmpty( song.getGenre() ) && genre.equalsIgnoreCase( song.getGenre() ) ) {
            mediaItems.add( generatePlayableMediaItem( song ) );
        }
    }
    return mediaItems;
}
 
private MediaBrowser.MediaItem generateBrowseableMediaItemByGenre( String genre ) {
    MediaDescription.Builder mediaDescriptionBuilder = new MediaDescription.Builder();
    mediaDescriptionBuilder.setMediaId( genre );
    mediaDescriptionBuilder.setTitle( genre );
    mediaDescriptionBuilder.setIconBitmap( BitmapFactory.decodeResource( getResources(), R.drawable.folder ) );

    return new MediaBrowser.MediaItem( mediaDescriptionBuilder.build(), MediaBrowser.MediaItem.FLAG_BROWSABLE );
}
 
源代码19 项目: Muzesto   文件: WearBrowserService.java
private void addMediaRoots(List<MediaBrowser.MediaItem> mMediaRoot) {
    mMediaRoot.add(new MediaBrowser.MediaItem(
            new MediaDescription.Builder()
                    .setMediaId(Integer.toString(TYPE_ARTIST))
                    .setTitle(getString(R.string.artists))
                    .setIconUri(Uri.parse("android.resource://" +
                            "naman14.timber/drawable/ic_empty_music2"))
                    .setSubtitle(getString(R.string.artists))
                    .build(), MediaBrowser.MediaItem.FLAG_BROWSABLE
    ));

    mMediaRoot.add(new MediaBrowser.MediaItem(
            new MediaDescription.Builder()
                    .setMediaId(Integer.toString(TYPE_ALBUM))
                    .setTitle(getString(R.string.albums))
                    .setIconUri(Uri.parse("android.resource://" +
                            "naman14.timber/drawable/ic_empty_music2"))
                    .setSubtitle(getString(R.string.albums))
                    .build(), MediaBrowser.MediaItem.FLAG_BROWSABLE
    ));

    mMediaRoot.add(new MediaBrowser.MediaItem(
            new MediaDescription.Builder()
                    .setMediaId(Integer.toString(TYPE_SONG))
                    .setTitle(getString(R.string.songs))
                    .setIconUri(Uri.parse("android.resource://" +
                            "naman14.timber/drawable/ic_empty_music2"))
                    .setSubtitle(getString(R.string.songs))
                    .build(), MediaBrowser.MediaItem.FLAG_BROWSABLE
    ));


    mMediaRoot.add(new MediaBrowser.MediaItem(
            new MediaDescription.Builder()
                    .setMediaId(Integer.toString(TYPE_PLAYLIST))
                    .setTitle(getString(R.string.playlists))
                    .setIconUri(Uri.parse("android.resource://" +
                            "naman14.timber/drawable/ic_empty_music2"))
                    .setSubtitle(getString(R.string.playlists))
                    .build(), MediaBrowser.MediaItem.FLAG_BROWSABLE
    ));

}
 
源代码20 项目: android-music-player   文件: MusicPlayerActivity.java
private void onMediaLoaded(List<MediaBrowser.MediaItem> media) {
    mBrowserAdapter.clear();
    mBrowserAdapter.addAll(media);
    mBrowserAdapter.notifyDataSetChanged();
}
 
源代码21 项目: android-music-player   文件: MusicPlayerActivity.java
public BrowseAdapter(Activity context) {
    super(context, R.layout.media_list_item, new ArrayList<MediaBrowser.MediaItem>());
}
 
源代码22 项目: android-music-player   文件: MusicPlayerActivity.java
@Override
public void onChildrenLoaded(String parentId, List<MediaBrowser.MediaItem> children) {
    onMediaLoaded(children);
}
 
源代码23 项目: android-music-player   文件: MusicPlayerActivity.java
private void onMediaLoaded(List<MediaBrowser.MediaItem> media) {
    mBrowserAdapter.clear();
    mBrowserAdapter.addAll(media);
    mBrowserAdapter.notifyDataSetChanged();
}
 
源代码24 项目: android-music-player   文件: MusicPlayerActivity.java
private void onMediaItemSelected(MediaBrowser.MediaItem item) {
    if (item.isPlayable()) {
        getMediaController().getTransportControls().playFromMediaId(item.getMediaId(), null);
    }
}
 
源代码25 项目: android-music-player   文件: MusicPlayerActivity.java
public BrowseAdapter(Activity context) {
    super(context, R.layout.media_list_item, new ArrayList<MediaBrowser.MediaItem>());
}
 
源代码26 项目: io2015-codelabs   文件: MusicPlayerActivity.java
private void onMediaLoaded(List<MediaBrowser.MediaItem> media) {
    mBrowserAdapter.clear();
    mBrowserAdapter.addAll(media);
    mBrowserAdapter.notifyDataSetChanged();
}
 
源代码27 项目: io2015-codelabs   文件: MusicPlayerActivity.java
public BrowseAdapter(Activity context) {
    super(context, R.layout.media_list_item, new ArrayList<MediaBrowser.MediaItem>());
}
 
源代码28 项目: io2015-codelabs   文件: MusicPlayerActivity.java
@Override
public void onChildrenLoaded(String parentId, List<MediaBrowser.MediaItem> children) {
    onMediaLoaded(children);
}
 
源代码29 项目: io2015-codelabs   文件: MusicPlayerActivity.java
private void onMediaLoaded(List<MediaBrowser.MediaItem> media) {
    mBrowserAdapter.clear();
    mBrowserAdapter.addAll(media);
    mBrowserAdapter.notifyDataSetChanged();
}
 
源代码30 项目: io2015-codelabs   文件: MusicPlayerActivity.java
private void onMediaItemSelected(MediaBrowser.MediaItem item) {
    if (item.isPlayable()) {
        getMediaController().getTransportControls().playFromMediaId(item.getMediaId(), null);
    }
}
 
 类所在包
 同包方法