簡體   English   中英

在同一個按鈕上播放和暫停音頻 Kotlin

[英]Play and pause audio on same button Kotlin

我嘗試在我的 recyclerView 適配器中的同一個按鈕上播放和暫停音頻文件。 但是,如果我按下“playbtn”,它只會播放而不是暫停。

這是我的 function:

fun playmusic(position: Int) {

    val post = posts[position]
    mp  = MediaPlayer()
    mp.setDataSource(post.audioUrl)
    mp.prepareAsync()
    mp.setOnPreparedListener { player ->
        if (player.isPlaying)
            player.pause()
        else{
            player.start()
        }
    }
}

這是我的 clickListner:

    playbtn.setOnClickListener {
            playmusic(postPosistion)
            Toast.makeText(context, "You play ${postPosistion + 1}", Toast.LENGTH_SHORT).show()
        }

每個View object 都有一個名為setTag / getTag的方法,用於存儲有關視圖 state 的小信息。

在“播放”按鈕的點擊偵聽器中,您可以使用自定義 state 設置tag ,它可以是任何東西,integer,字符串,甚至是密封的 class 狀態。 之后就是簡單的if-else邏輯,在你的if條件下,檢查getTag as T(the type of object you previously-stored) ,匹配播放state,然后暫停播放。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM