Кнопка громкости не контролирует громкость устройства приведения из приложения Android-отправителя с использованием cast-sdk v3 по умолчанию - PullRequest
0 голосов
/ 27 ноября 2018

Я использую Cast SDK v3 в своем приложении для отправки Android, оно работает хорошо, но кнопка управления громкостью по умолчанию не контролирует громкость устройства.Я должен расширить всплывающее окно регуляторов громкости и отрегулировать громкость устройства.Он непосредственно контролирует громкость устройства, когда возобновляется сеанс приведения.Но он теряет фокус после изменения состояния воспроизведения.

private class CastSessionManagerListener implements SessionManagerListener<CastSession> {

    @Override
    public void onSessionStarting(CastSession session) {
    }

    @Override
    public void onSessionStarted(CastSession session, String sessionId) {
        // In case we are casting, send the device name as an extra on MediaSession metadata.
        // Now we can switch to CastPlayback
        EventHelper.eventFeatureClicked(EventHelper.FEATURE_CHROME_CAST);
        Playback playback = new CastPlayback(MusicService.this);
        mMediaRouter.setMediaSessionCompat(mSession);
        mPlaybackManager.switchToPlayback(playback, true);
    }

    @Override
    public void onSessionStartFailed(CastSession session, int error) {

    }

    @Override
    public void onSessionEnding(CastSession session) {
        // This is our final chance to update the underlying stream position
        // In onSessionEnded(), the underlying CastPlayback#mRemoteMediaClient
        // is disconnected and hence we update our local value of stream position
        // to the latest position.
        mPlaybackManager.getPlayback().updateLastKnownStreamPosition();
    }

    @Override
    public void onSessionEnded(CastSession session, int error) {
        Playback playback = new LocalPlayback(MusicService.this);
        mMediaRouter.setMediaSessionCompat(null);
        mPlaybackManager.switchToPlayback(playback, true);
    }

    @Override
    public void onSessionResuming(CastSession session, String sessionId) {
    }

    @Override
    public void onSessionResumed(CastSession session, boolean wasSuspended) {
        EventHelper.eventFeatureClicked(EventHelper.FEATURE_CHROME_CAST);
        Playback playback = new CastPlayback(MusicService.this);
        mMediaRouter.setMediaSessionCompat(mSession);
        mPlaybackManager.switchToPlayback(playback, true);
    }

    @Override
    public void onSessionResumeFailed(CastSession session, int error) {
    }

    @Override
    public void onSessionSuspended(CastSession session, int reason) {
    }
}

1 Ответ

0 голосов
/ 08 июля 2019

Я полагаю, что это происходит, если ваш MediaSession или MediaSessionCompat установлен в активное состояние.При воспроизведении или удаленном воспроизведении оно должно быть отключено.

...