توقف و از سرگیری پخش رسانه با صفحه کلید خارجی Spacebar

هر زمان که برنامه شما یک فایل رسانه ای پخش می کند، کاربران باید بتوانند با فشار دادن Spacebar روی صفحه کلید فیزیکی، پخش را متوقف کرده و از سر بگیرند.

به رویدادهای فشار کلید پاسخ دهید

برنامه‌های مبتنی بر Jetpack Compose یا views به فشردن کلیدهای صفحه‌کلید به روش‌های مشابهی پاسخ می‌دهند: برنامه به رویدادهای فشار کلید گوش می‌دهد، رویدادها را فیلتر می‌کند و به فشارهای کلید مانند فشار کلید Spacebar پاسخ می‌دهد.

1. به رویدادهای صفحه کلید گوش دهید

نوشتن

با Jetpack Compose، از onPreviewKeyEvent یا onKeyEvent اصلاح‌کننده در طرح‌بندی که ضربه کلید را مدیریت می‌کند، استفاده کنید:

Column(modifier = Modifier.onPreviewKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp) {
        ...
    }
    ...
})

یا

Column(modifier = Modifier.onKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp) {
        ...
    }
    ...
})

بازدیدها

در یک فعالیت در برنامه خود، روش onKeyUp() را لغو کنید:

کاتلین

override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
    ...
}

جاوا

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    ...
}

این روش هر بار که یک کلید فشار داده می‌شود فراخوانی می‌شود، بنابراین برای هر زدن کلید دقیقاً یک بار شلیک می‌شود.

2. فشارهای Spacebar را فیلتر کنید

در روش Compose onPreviewKeyEvent و onKeyEvent اصلاح کننده یا روش views onKeyUp() ، KeyEvent.KEYCODE_SPACE را فیلتر کنید تا رویداد صحیح به مؤلفه رسانه شما ارسال شود:

نوشتن

Column(modifier = Modifier.onPreviewKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
        ...
    }
    ...
})

یا

Column(modifier = Modifier.onKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
        ...
    }
    ...
})

بازدیدها

کاتلین

if (keyCode == KeyEvent.KEYCODE_SPACE) {
    togglePlayback()
    return true
}
return false

جاوا

if (keyCode == KeyEvent.KEYCODE_SPACE) {
    togglePlayback();
    return true;
}
return false;

نکات کلیدی

نوشتن

  • onPreviewKeyEvent : اصلاح‌کننده‌ای که یک مؤلفه را قادر می‌سازد تا رویدادهای کلیدی سخت‌افزار را هنگامی که آن (یا یکی از فرزندانش) متمرکز است، رهگیری کند.
  • onKeyEvent : مشابه onPreviewKeyEvent ، اصلاح‌کننده‌ای که یک مؤلفه را قادر می‌سازد تا رویدادهای کلیدی سخت‌افزاری را هنگامی که مؤلفه (یا یکی از فرزندان آن) متمرکز است، رهگیری کند.

بازدیدها

  • onKeyUp() : هنگامی که یک کلید آزاد می شود و توسط یک view (مانند TextView ) در یک اکتیویتی کنترل نمی شود، کنترل کننده رویداد فراخوانی می شود.

نتایج

برنامه شما اکنون می‌تواند به فشار دادن کلید Spacebar برای توقف و ازسرگیری یک ویدیو یا رسانه دیگر پاسخ دهد.