При приведении изображения отображаются элементы управления мультимедиа в Notification, MiniControllerFragment и ExpandedControllerActivity. - PullRequest
0 голосов
/ 06 июня 2018

В моем приложении есть видео, аудио и фото.Я успешно могу разыграть всех троих.Однако, когда я снимаю изображение, в фрагменте minicontroller, Notification и ExpandedControllerActivity отображаются элементы управления видео.Когда я нажимаю кнопку воспроизведения / паузы, она просто вращается вокруг фотографии.

Есть ли способ отключить ее для изображений?Я искал везде, но по какой-то причине мне не удалось найти ни одного примера фотографии.

Любая помощь будет оценена.Спасибо.

Вот код для CastOptionsProvider.

 @Override
public CastOptions getCastOptions(Context context) {

    NotificationOptions notificationOptions = new NotificationOptions.Builder()
            .setTargetActivityClassName(ExpandedControlsActivity.class.getName())
            .setActions(Arrays.asList(MediaIntentReceiver.ACTION_REWIND,MediaIntentReceiver.ACTION_TOGGLE_PLAYBACK, MediaIntentReceiver.ACTION_FORWARD, MediaIntentReceiver.ACTION_STOP_CASTING), new int[]{1,2,3})
            .build();
    CastMediaOptions mediaOptions = new CastMediaOptions.Builder()
            .setNotificationOptions(notificationOptions)
            .setExpandedControllerActivityClassName(ExpandedControlsActivity.class.getName())
            .build();

    CastOptions castOptions = new CastOptions.Builder()
            .setReceiverApplicationId(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
            .setCastMediaOptions(mediaOptions)
            .build();
    return castOptions;
}

Вот как я произвожу изображение:

MediaMetadata photoMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_PHOTO);
photoMetadata.putString(MediaMetadata.KEY_TITLE, "Casting to " + mCastSession.getCastDevice().getFriendlyName());
photoMetadata.addImage(new WebImage(Uri.parse(photoItem.getImageUrl())));

MediaInfo mediaInfo = new MediaInfo.Builder(photoItem.getImageUrl())
        .setContentType("image/jpeg")
        .setMetadata(photoMetadata)
        .setStreamDuration(0)
        .setStreamType(MediaInfo.STREAM_TYPE_NONE)
        .build();
MediaLoadOptions mediaLoadOptions = new MediaLoadOptions.Builder()
        .setAutoplay(true)
        .setPlayPosition(0)
        .build();

RemoteMediaClient remoteMediaClient = mCastSession.getRemoteMediaClient();
remoteMediaClient.load(mediaInfo, mediaLoadOptions);

1 Ответ

0 голосов
/ 15 сентября 2018

Вы можете использовать Медиа-ресивер по умолчанию (CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID), чтобы попробовать его в качестве получателя по умолчанию, в противном случае вам нужно создать свой собственный.

Внутри CastOptionProvider создайтеCastOptions как ниже

new CastOptions.Builder()
            .setReceiverApplicationId(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
            .setCastMediaOptions(mediaOptions)
            .build();
...