android - 如何从一个地方更改整个应用程序中的默认ClickSound

标签 android kotlin button audio onclick

是否有可能在整个android应用程序中更改默认的 ClickSound ,而无需在应用程序中的每个按钮的onButtonClickListener / onButtonTouchListener中实现MediaPlayer?

由于该应用程序有近20个按钮,因此实现onButtonClickListenr并在每个 Activity 或片段中播放声音似乎是不合理的。如果,我们可以在一处为应用程序更改ClickSound,那就太好了。

很高兴听到您的意见...

最佳答案

您可以创建扩展功能来解决此问题

ViewExtentions.kt

fun View.setOnClickListenerWithSound(action: () -> Unit) {
    val actionWithSound = ActionWithSound(context, action)

    setOnClickListener {
        actionWithSound.notifyAction()
    }
}

private class ActionWithSound(context: Context,private val action: () -> Unit) {

    private var mediaPlayer: MediaPlayer = MediaPlayer.create(context,R.raw.click )

    fun notifyAction() {
        mediaPlayer.start()
        action.invoke()
    }
}

您可以将其用作波纹管:
someBtn.setOnClickListenerWithSound {
        // do what you want
}

关于android - 如何从一个地方更改整个应用程序中的默认ClickSound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60371750/

相关文章:

java - 媒体播放器错误(-19 0)不适用于release()

java - 创建 gradle 插件时将生成的 java 或 kotlin 源代码放在哪里?

java - 如何使用 RxJava 收集异步响应

java - Android RecyclerView 添加按钮给我错误

html - 具有 Accordion 效果的菜单按钮

Android EGL/OpenGL ES 帧速率卡顿

android - 如何更改显示在 android 小部件选择对话框中的图像?

kotlin - Gradle Kotlin DSL扩展自

android - 在 Android 上点击后退按钮时关闭应用程序

Android - 应用程序 onCreate 方法 - 它总是先被调用吗?