Uygulamamda mükemmel bir şekilde çalışan özel bir yayın göndereni oluşturdum. Eklemem gereken tek özellik 'Oynat/Duraklat' ve 'Atla' seçeneklerini dinlemenin bir yoludur. düğmeler, ancak (bildiğim kadarıyla aramak mümkün oldum gibi) herhangi bir ipucu vermez ve Advanced Cast Features Docs gösterilen işlevselliği ekledikten sonra Google'ın dokümantasyon işe yaramadı:Döküm kontrol arabirimi aracılığıyla UIMediaController tıklamalarını yakalama
CastMediaOptions castMediaOptions = new CastMediaOptions.Builder()
.setMediaIntentReceiverClassName(CastIntentReceiver.class.getName())
.build();
return new CastOptions.Builder()
.setReceiverApplicationId(context.getString(R.string.cast_id))
.setCastMediaOptions(castMediaOptions)
.build();
Ben uzanan CastIntentReceiver
var MediaIntentReceiver
, CastOptionsProvider
numaralı belgede ve bildiride belirtilmiştir.
public class CastIntentReceiver extends MediaIntentReceiver {
public static String TAG = "CastIntentReceiver";
public CastIntentReceiver() {
Log.i(TAG, "CastIntentReceiver: Constructed!");
}
...
// The rest of the Override methods don't do anything
}
Günlüğü baskı çalışıyor çünkü alıcı, çalışıyor, ancak geçersiz kılma yöntemleri hiçbiri (Log baskı) denir. , MainActivity View tabanına eklenir CastManager (kontrolör) ve CastControls fragmanı (görünüm) (benzer
Tüm döküm fonksiyonları
iki ayrı sınıfta şunlardır: İşte benim uygulanmasına ilişkin bazı ek detaylar YouTube'a). Bu iki sınıf arasında bir şeyler tetikleyen Arayüzler de vardır. CastManager yılında , ben kurulumUIMediaController
ve bağlama Görüntüleme:
View view = CastingBridge.CAST_CONTROLS_VIEW.findViewById(R.id.cast_drawer_controls);
uiMediaController = new UIMediaController(activity);
SeekBar seekBar = (SeekBar) view.findViewById(R.id.cast_control_seek_bar);
TextView start = (TextView) view.findViewById(R.id.cast_control_time_start);
TextView end = (TextView) view.findViewById(R.id.cast_control_time_end);
ImageButton playPauseButton = (ImageButton) view.findViewById(R.id.cast_control_play_pause);
ImageButton rewindButton = (ImageButton) view.findViewById(R.id.cast_control_rewind);
ImageButton forwardButton = (ImageButton) view.findViewById(R.id.cast_control_forward);
ImageButton stopButton = (ImageButton) view.findViewById(R.id.cast_control_stop);
ProgressBar loadingSpinner = (ProgressBar) view.findViewById(R.id.cast_control_loading);
gerektiği, ancak (yakalama) dokunmatik dinlememiz gerekir olarak tüm bu iş/olayları tıklayın önce de belirtildiği gibi, böylece Bir video duraklatıldığında veya durdurulduğunda, devam etmek için mevcut saat uzunluğunu kaydedebilirim.
Bu etkinlikleri dinlemek için MediaIntentReceiver
'u nasıl uygularım? Tek tek Görünümlere tıklama dinleyicileri eklemeyi denedim, ancak beklendiği gibi, @Override onClick
ilk amaçlanan işlevselliği kaldırır.
documentation, gereksinim duyduğum yöntemler gibi görünüyor, ancak bu nasıl başvuruyor?
Ben de UIMediaController
için kullanılabilen tek dinleyici ekleme çalıştı: onStatusUpdated
yöntem hiçbir argüman besleyen olarak
uiMediaController.setPostRemoteMediaClientListener(new RemoteMediaClient.Listener() {
@Override
public void onStatusUpdated() {
Log.i(TAG, "onStatusUpdated: Status Updated");
}
});
Ancak bu, hiçbir şey yapmaz.
Bu konuda bana ışık tutmama yardımcı olan var mı? Farklı şeyler denedim ve birkaç gün aradım, bu yüzden yardım isteme zamanı.
Teşekkürler!
Cevabınız için teşekkür ederiz. Bunu hayata geçirdim ve gerçekten çalışıyor, ancak onStatusUpdated yöntemi hiçbir argüman içermiyor. Hangi düğmenin (kullanımdaki üç) gerçekten tıklandığını nasıl öğrenebilirim? – mwieczorek