當前位置: 首頁>>代碼示例>>Java>>正文


Java PlaybackStateCompat.getState方法代碼示例

本文整理匯總了Java中android.support.v4.media.session.PlaybackStateCompat.getState方法的典型用法代碼示例。如果您正苦於以下問題:Java PlaybackStateCompat.getState方法的具體用法?Java PlaybackStateCompat.getState怎麽用?Java PlaybackStateCompat.getState使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.support.v4.media.session.PlaybackStateCompat的用法示例。


在下文中一共展示了PlaybackStateCompat.getState方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: onPlaybackStateUpdate

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
@Override
public void onPlaybackStateUpdate(PlaybackStateCompat playbackState) {
    mSession.setPlaybackState(playbackState);

    int state = playbackState.getState();

     if (state == PlaybackStateCompat.STATE_PLAYING) {
        Notification notification = postNotification();
        startForeground(NOTIFICATION_ID, notification);
        mReceiver.register();
    } else {
        if (state == PlaybackStateCompat.STATE_PAUSED) {
            postNotification();
        } else {
            mNotificationManager.cancel(NOTIFICATION_ID);
        }
        stopForeground(false);
        mReceiver.unregister();
    }
}
 
開發者ID:Jaysaw,項目名稱:NovaMusicPlayer,代碼行數:21,代碼來源:MusicService.java

示例2: playPause

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
@OnClick(R.id.play_pause)
public void playPause(){
    lastState=null;
    MediaControllerCompat controllerCompat=MediaControllerCompat.getMediaController(getActivity());
    PlaybackStateCompat stateCompat=controllerCompat.getPlaybackState();
    if(stateCompat!=null){
        MediaControllerCompat.TransportControls controls=
                controllerCompat.getTransportControls();
        switch (stateCompat.getState()){
            case PlaybackStateCompat.STATE_PLAYING:
            case PlaybackStateCompat.STATE_BUFFERING:
                controls.pause();
                break;
            case PlaybackStateCompat.STATE_NONE:
            case PlaybackStateCompat.STATE_PAUSED:
            case PlaybackStateCompat.STATE_STOPPED:
                controls.play();
                break;
            default:
                Log.d(TAG, "State "+stateCompat.getState());
        }
    }
}
 
開發者ID:vpaliyX,項目名稱:Melophile,代碼行數:24,代碼來源:TrackFragment.java

示例3: onPlaybackStateChange

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
@Override
public void onPlaybackStateChange(PlaybackStateCompat state) {
    // Report the state to the MediaSession.
    mSession.setPlaybackState(state);

    // Manage the started state of this service.
    switch (state.getState()) {
        case PlaybackStateCompat.STATE_PLAYING:
            mServiceManager.moveServiceToStartedState(state);
            break;
        case PlaybackStateCompat.STATE_PAUSED:
            mServiceManager.updateNotificationForPause(state);
            break;
        case PlaybackStateCompat.STATE_STOPPED:
            mServiceManager.moveServiceOutOfStartedState(state);
            break;
    }
}
 
開發者ID:nazmulidris,項目名稱:mediasession-mediaplayer,代碼行數:19,代碼來源:MusicService.java

示例4: onPlaybackStateChanged

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
@Override
public void onPlaybackStateChanged(PlaybackStateCompat state) {
    playbackState = state;
    if (extras != state.getExtras()) {
        extras = state.getExtras();
        updateTrackFromExtras();
    }
    if (state.getState() == PlaybackStateCompat.STATE_ERROR) {
        isSeeking = false;
        onFailed();
    } else if (state.getState() == PlaybackStateCompat.STATE_PLAYING) {
        isSeeking = false;
        updateRecordPlayedState();
        updatePlayerView(false);
    } else if (state.getState() != PlaybackStateCompat.STATE_REWINDING) {
        isSeeking = false;
        updatePlayerView(true);
    }
}
 
開發者ID:kalikov,項目名稱:lighthouse,代碼行數:20,代碼來源:LighthouseActivity.java

示例5: updatePlaybackState

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
private void updatePlaybackState(PlaybackStateCompat state) {
    mCurrentState = state;
    if (state == null
            || state.getState() == PlaybackStateCompat.STATE_PAUSED
            || state.getState() == PlaybackStateCompat.STATE_STOPPED) {
        mPlayPause.setImageDrawable(
                ContextCompat.getDrawable(this, R.drawable.ic_play_arrow_black_36dp));
    } else {
        mPlayPause.setImageDrawable(
                ContextCompat.getDrawable(this, R.drawable.ic_pause_black_36dp));
    }
    mPlaybackControls.setVisibility(state == null ? View.GONE : View.VISIBLE);
}
 
開發者ID:googlecodelabs,項目名稱:musicplayer-devices,代碼行數:14,代碼來源:MusicPlayerActivity.java

示例6: updatePlaybackState

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
private void updatePlaybackState(PlaybackStateCompat state) {
    mCurrentState = state;
    if (state == null
            || state.getState() == PlaybackState.STATE_PAUSED
            || state.getState() == PlaybackState.STATE_STOPPED) {
        mPlayPause.setImageDrawable(
                ContextCompat.getDrawable(this, R.drawable.ic_play_arrow_black_36dp));
    } else {
        mPlayPause.setImageDrawable(
                ContextCompat.getDrawable(this, R.drawable.ic_pause_black_36dp));
    }
    mPlaybackControls.setVisibility(state == null ? View.GONE : View.VISIBLE);
}
 
開發者ID:googlecodelabs,項目名稱:musicplayer-devices,代碼行數:14,代碼來源:MusicPlayerActivity.java

示例7: onPlaybackStateChanged

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
@Override
public void onPlaybackStateChanged(PlaybackStateCompat state) {
    mPlaybackState = state;
    Log.i(TAG, "onPlaybackStateChanged: received new play state : " + state);
    if (state.getState() == PlaybackStateCompat.STATE_STOPPED ||
            state.getState() == PlaybackStateCompat.STATE_NONE) {
        stopNotification();
    } else {
        Notification notification = buildNotification();
        if (notification != null) {
            mNotificationManager.notify(NOTIFICATION_ID, notification);
        }
    }

}
 
開發者ID:Jaysaw,項目名稱:NovaMusicPlayer,代碼行數:16,代碼來源:NovaNotificationManager.java

示例8: onPlaybackStateChanged

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
@Override
public void onPlaybackStateChanged(@NonNull PlaybackStateCompat state) {
    mPlaybackState = state;
    if (state.getState() == PlaybackStateCompat.STATE_STOPPED ||
            state.getState() == PlaybackStateCompat.STATE_NONE) {
        stopNotification();
    } else {
        Notification notification = createNotification();
        if (notification != null) {
            mNotificationManager.notify(NOTIFICATION_ID, notification);
        }
    }
}
 
開發者ID:AllThatSeries,項目名稱:react-native-streaming-audio-player,代碼行數:14,代碼來源:MediaNotificationManager.java

示例9: updatePlaybackState

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
public void updatePlaybackState(PlaybackStateCompat playbackState){
    this.playbackState=playbackState;
    if(playbackState.getState()==PlaybackStateCompat.STATE_STOPPED||
            playbackState.getState()==PlaybackStateCompat.STATE_NONE){
        stopNotification();
    }else{
        updateNotification();
    }
}
 
開發者ID:vpaliyX,項目名稱:Melophile,代碼行數:10,代碼來源:TrackNotification.java

示例10: getNotification

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
public Notification getNotification(MediaMetadataCompat metadata,
                                    @NonNull PlaybackStateCompat state,
                                    MediaSessionCompat.Token token) {
    boolean isPlaying = state.getState() == PlaybackStateCompat.STATE_PLAYING;
    MediaDescriptionCompat description = metadata.getDescription();
    NotificationCompat.Builder builder =
            buildNotification(state, token, isPlaying, description);
    return builder.build();
}
 
開發者ID:nazmulidris,項目名稱:mediasession-mediaplayer,代碼行數:10,代碼來源:MediaNotificationManager.java

示例11: onPlaybackStateChanged

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
@Override
public void onPlaybackStateChanged(PlaybackStateCompat state) {
    super.onPlaybackStateChanged(state);

    // If there's an ongoing animation, stop it now.
    if (mProgressAnimator != null) {
        mProgressAnimator.cancel();
        mProgressAnimator = null;
    }

    final int progress = state != null
            ? (int) state.getPosition()
            : 0;
    setProgress(progress);
    Log.d("nicole", "Set progress to: " + (progress / 1000.0f));

    // If the media is playing then the seekbar should follow it, and the easiest
    // way to do that is to create a ValueAnimator to update it so the bar reaches
    // the end of the media the same time as playback gets there (or close enough).
    if (state != null && state.getState() == PlaybackStateCompat.STATE_PLAYING) {
        final int timeToEnd = (int) ((getMax() - progress) / state.getPlaybackSpeed());

        mProgressAnimator = ValueAnimator.ofInt(progress, getMax())
                .setDuration(timeToEnd);
        mProgressAnimator.setInterpolator(new LinearInterpolator());
        mProgressAnimator.addUpdateListener(this);
        mProgressAnimator.start();
    }
}
 
開發者ID:nazmulidris,項目名稱:mediasession-mediaplayer,代碼行數:30,代碼來源:MediaSeekBar.java

示例12: onPlaybackStateChanged

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
@Override
public void onPlaybackStateChanged(PlaybackStateCompat state) {
    super.onPlaybackStateChanged(state);

    // If there's an ongoing animation, stop it now.
    if (mProgressAnimator != null) {
        mProgressAnimator.cancel();
        mProgressAnimator = null;
    }

    final int progress = state != null
            ? (int) state.getPosition()
            : 0;
    setProgress(progress);

    // If the media is playing then the seekbar should follow it, and the easiest
    // way to do that is to create a ValueAnimator to update it so the bar reaches
    // the end of the media the same time as playback gets there (or close enough).
    if (state != null && state.getState() == PlaybackStateCompat.STATE_PLAYING) {
        final int timeToEnd = (int) ((getMax() - progress) / state.getPlaybackSpeed());

        mProgressAnimator = ValueAnimator.ofInt(progress, getMax())
                .setDuration(timeToEnd);
        mProgressAnimator.setInterpolator(new LinearInterpolator());
        mProgressAnimator.addUpdateListener(this);
        mProgressAnimator.start();
    }
}
 
開發者ID:fendoudebb,項目名稱:PlayAndroid,代碼行數:29,代碼來源:MediaSeekBar.java

示例13: update

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
public void update(
        MediaMetadataCompat metadata,
        PlaybackStateCompat state,
        MediaSessionCompat.Token token) {
    if (state == null
            || state.getState() == PlaybackStateCompat.STATE_STOPPED
            || state.getState() == PlaybackStateCompat.STATE_NONE) {
        mService.stopForeground(true);
        try {
            mService.unregisterReceiver(this);
        } catch (IllegalArgumentException ex) {
            // ignore receiver not registered
        }
        mService.stopSelf();
        return;
    }
    if (metadata == null) {
        return;
    }
    boolean isPlaying = state.getState() == PlaybackStateCompat.STATE_PLAYING;
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mService);
    MediaDescriptionCompat description = metadata.getDescription();

    notificationBuilder
            .setStyle(
                    new NotificationCompat.MediaStyle()
                            .setMediaSession(token)
                            .setShowActionsInCompactView(0, 1, 2))
            .setColor(
                    mService.getApplication().getResources().getColor(R.color.notification_bg))
            .setSmallIcon(R.drawable.ic_notification)
            .setVisibility(Notification.VISIBILITY_PUBLIC)
            .setContentIntent(createContentIntent())
            .setContentTitle(description.getTitle())
            .setContentText(description.getSubtitle())
            .setLargeIcon(MusicLibrary.getAlbumBitmap(mService, description.getMediaId()))
            .setOngoing(isPlaying)
            .setWhen(isPlaying ? System.currentTimeMillis() - state.getPosition() : 0)
            .setShowWhen(isPlaying)
            .setUsesChronometer(isPlaying);

    // If skip to next action is enabled
    if ((state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) != 0) {
        notificationBuilder.addAction(mPrevAction);
    }

    notificationBuilder.addAction(isPlaying ? mPauseAction : mPlayAction);

    // If skip to prev action is enabled
    if ((state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) != 0) {
        notificationBuilder.addAction(mNextAction);
    }

    Notification notification = notificationBuilder.build();

    if (isPlaying && !mStarted) {
        mService.startService(new Intent(mService.getApplicationContext(), MusicService.class));
        mService.startForeground(NOTIFICATION_ID, notification);
        mStarted = true;
    } else {
        if (!isPlaying) {
            mService.stopForeground(false);
            mStarted = false;
        }
        mNotificationManager.notify(NOTIFICATION_ID, notification);
    }
}
 
開發者ID:googlecodelabs,項目名稱:musicplayer-devices,代碼行數:68,代碼來源:MediaNotificationManager.java

示例14: buildNotification

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
public static Notification buildNotification(Context context, MediaSessionCompat session) {

        MediaControllerCompat controller = session.getController();
        MediaMetadataCompat metadata = controller.getMetadata();
        PlaybackStateCompat playbackState = controller.getPlaybackState();

        if ((metadata == null) || (playbackState == null)) {
            return null;
        }

        boolean isPlaying = playbackState.getState() == PlaybackStateCompat.STATE_PLAYING;
        NotificationCompat.Action action = isPlaying ?
                new NotificationCompat.Action(android.R.drawable.ic_media_pause,
                        context.getString(R.string.pause),
                        MediaButtonReceiver.buildMediaButtonPendingIntent(context,
                                PlaybackStateCompat.ACTION_PAUSE)) :
                new NotificationCompat.Action(android.R.drawable.ic_media_play,
                        context.getString(R.string.play),
                        MediaButtonReceiver.buildMediaButtonPendingIntent(context,
                                PlaybackStateCompat.ACTION_PLAY));

        MediaDescriptionCompat description = metadata.getDescription();
        Bitmap albumArt = description.getIconBitmap();
        if (albumArt == null) {
            albumArt = BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher);
        }


        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, MusicService.NOTIFICATION_CHANNEL_ID);
        builder.setStyle(new android.support.v4.media.app.NotificationCompat.MediaStyle()
//                .setShowActionsInCompactView(new int[]{0})
.setMediaSession(session.getSessionToken()))
                .addAction(action)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setShowWhen(false)
                .setContentIntent(controller.getSessionActivity())
                .setContentTitle(description.getTitle())
                .setContentText(description.getSubtitle())
                .setLargeIcon(albumArt)
                .setVisibility(NotificationCompat.VISIBILITY_PUBLIC);

        return builder.build();
    }
 
開發者ID:Jaysaw,項目名稱:NovaMusicPlayer,代碼行數:44,代碼來源:NotificationHelper.java

示例15: updatePlaybackState

import android.support.v4.media.session.PlaybackStateCompat; //導入方法依賴的package包/類
public void updatePlaybackState(PlaybackStateCompat stateCompat){
    if(stateCompat==null) return;
    lastState=stateCompat;
    updateRepeatMode(isActionApplied(stateCompat.getActions(),
            PlaybackStateCompat.ACTION_SET_REPEAT_MODE));
    updateShuffleMode(isActionApplied(stateCompat.getActions(),
            PlaybackStateCompat.ACTION_SET_SHUFFLE_MODE_ENABLED));
    //check the state
    switch (stateCompat.getState()){
        case PlaybackStateCompat.STATE_PLAYING:
            playPause.setVisibility(VISIBLE);
            if(playPause.isPlay()){
                playPause.change(false,true);
            }
            startSeekBarUpdate();
            break;
        case PlaybackStateCompat.STATE_PAUSED:
            // mControllers.setVisibility(VISIBLE);
            // mLoading.setVisibility(INVISIBLE);
            playPause.setVisibility(VISIBLE);
            if(!playPause.isPlay()){
                playPause.change(true,true);
            }
            stopSeekBarUpdate();
            break;
        case PlaybackStateCompat.STATE_NONE:
        case PlaybackStateCompat.STATE_STOPPED:
            playPause.setVisibility(VISIBLE);
            if(playPause.isPlay()){
                playPause.change(false,true);
            }
            stopSeekBarUpdate();
            break;
        case PlaybackStateCompat.STATE_BUFFERING:
            playPause.setVisibility(INVISIBLE);
            stopSeekBarUpdate();
            break;
        default:
            Log.d(TAG, "Unhandled state "+stateCompat.getState());
    }
}
 
開發者ID:vpaliyX,項目名稱:Melophile,代碼行數:42,代碼來源:TrackFragment.java


注:本文中的android.support.v4.media.session.PlaybackStateCompat.getState方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。