Klavye boşluk çubuğuyla medya oynatmayı duraklatma ve devam ettirme

Dört yıldız puanı simgesi

Büyük ekran optimizasyonu, harici klavye girişlerini işleme özelliğini içerir. Örneğin, videoların ve diğer medya içeriklerinin oynatılmasını duraklatmak veya devam ettirmek için Boşluk tuşuna basılmasına tepki verme. Bu, genellikle harici klavyelere bağlanan tabletler ve genellikle harici klavyelerle birlikte gelen ancak tablet modunda kullanılabilen Chromebook'lar için özellikle kullanışlıdır.

Medya, penceredeki tek öğe olduğunda (ör. tam ekran video oynatma) Jetpack Compose'da tuş basma etkinliklerine ekran düzeyinde yanıt verin.

En iyi uygulamalar

Uygulamanız bir medya dosyası oynattığında kullanıcılar fiziksel klavyedeki boşluk tuşuna basarak oynatmayı duraklatıp devam ettirebilmelidir.

Malzemeler

  • KEYCODE_SPACE: Boşluk tuşu için tuş kodu sabiti.
  • onPreviewKeyEvent: Bir bileşenin (veya alt öğelerinden birinin) odaklandığında donanım tuşu etkinliklerini yakalamasını sağlayan Modifier.
  • onKeyEvent: onPreviewKeyEvent gibi bu Modifier da bir bileşenin (veya alt öğelerinden birinin) odağı olduğunda donanım tuşu etkinliklerini yakalamasını sağlar.

Adımlar

Jetpack Compose'da klavye tuşlarına basıldığında yanıt vermek için uygulamanızın tuş basma etkinliklerini dinlemesi, etkinlikleri filtrelemesi ve seçilen tuş basmalarına (ör. boşluk tuşuna basma) yanıt vermesi gerekir.

1. Klavye etkinliklerini dinleme

Jetpack Compose ile, tuş vuruşunu yöneten bileşende onPreviewKeyEvent veya onKeyEvent değiştiricisinden yararlanabilirsiniz.

İki değiştirici arasındaki temel fark, değiştirici etkinliği kullanmazsa etkinliğin nereye gönderildiğidir:

  • onPreviewKeyEvent: Etkinliği ilk alt öğesine gönderir.
  • onKeyEvent: Etkinliği, composable'ın üst öğesine gönderir.

2. Boşluk tuşuna basma işlemlerini filtreleme ve işleme

onPreviewKeyEvent veya onKeyEvent değiştirici lambda içinde, tuş bırakma (KeyEventType.KeyUp) işleminin boşluk çubuğuyla (Key.Spacebar) eşleştiği tuş etkinliklerini filtreleyin.

Kodunuz etkinliği işliyorsa ve etkinliğin daha fazla yayılmasını istemiyorsanız true değerini döndürün. Diğer bileşenlerin etkinliği işlemesine izin vermek için false değerini döndürün.

  • A seçeneği: onPreviewKeyEvent kullanarak

    Column(
        modifier = Modifier.onPreviewKeyEvent { event ->
            if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
                // Handle spacebar keypress to pause/resume playback.
                true
            } else {
                false
            }
        }
    ) {
        // Content
    }

  • B seçeneği: onKeyEvent kullanarak

    Column(
        modifier = Modifier.onKeyEvent { event ->
            if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
                // Handle spacebar keypress to pause/resume playback.
                true
            } else {
                false
            }
        }
    ) {
        // Content
    }

Sonuçlar

Uygulamanız artık boşluk tuşuna basıldığında videoyu veya diğer medyaları duraklatıp devam ettirebilir.

Ek kaynaklar

Klavye etkinlikleri ve bunları yönetme hakkında daha fazla bilgi edinmek için Klavye girişini işleme başlıklı makaleyi inceleyin.