2013-08-19 13 views
5

Podczas rejestracji MinimalMediaRouteProvider/MediaRouteButton z Andromax Chromecast SDK, otrzymujemy standardowe okno dialogowe do połączenia z istniejącymi urządzeniami Cromecast. Po połączeniu z urządzeniem to samo okno dialogowe zapewnia również sposób ustawiania głośności za pomocą przeciągniętego paska przewijania. Mam problem ze zsynchronizowaniem pozycji tego paska wyszukiwania woluminu z faktycznym woluminem, który jest już ustawiony na urządzeniu Chromecast.Jak zaktualizować wskaźnik woluminu dostarczony przez MinimalMediaRouteProvider

W ramach rejestracji MinimalMediaRouteProvider zapewniamy implementację com.google.cast.MediaRouteAdapter. Parametr onSetVolume (volume) tego interfejsu jest wywoływany, gdy użytkownik przeciągnie wskaźnik seekBar powyżej. To daje nam świetny sposób na aktualizację poziomu głośności podłączonego kanału chromecast za pomocą metody messageStream.setVolume (volume).

Problem polega na tym, że kiedy aktualizować głośność, nie ma sposobu, aby powiedzieć powrotem MinimalMediaRouteProvider UI, że wielkość zmieniła więc może pozycjonować się odpowiednio - obecnie to zawsze pokazuje objętość jako 0.

Co to jest właściwy sposób powiadomienia MinimalMediaRouteProvider o bieżącym poziomie głośności, aby mógł zaktualizować swój interfejs użytkownika woluminu?

Patrząc na próbkę MediaRoute zawartą z biblioteką wsparcia 7, wydaje się, że istnieje sposób na stworzenie MediaRouteDescriptor, zaktualizowanie woluminu i przekazanie tego z powrotem do MediaRouteProvider, ale nie jest to bardzo jasne, jak to zrobić w zawartość Chromecast/MinimalMediaRouteProvider.

Odpowiedz

0

Aby uzyskać głośność bezpośrednio z VideoCastManager:

mVolume = (int) (mCastManager.getVolume() * 100) // cast volume is double 

Aby otrzymywać zmiany głośności systemowego w odbiorniku (czyli suwak głośności na ekranie w wyskakujących okienkach i innych podłączonych urządzeniach, zmieniających głośność), musisz dodać odbiorcę do aktywności kontrolera:

private VideoCastConsumerImpl mCastConsumer = new VideoCastConsumerImpl() { 

    public void onVolumeChanged(double volume, boolean isMute) 
    { 
     mVolumeSeekBar.setProgress((int) (volume *100)); 
    } 
}; 

Aby uzyskać więcej informacji:

Android Sender App Development (Aug '14)

Powiązane problemy