如何在回收器视图适配器中访问 exoplayer 方法
how to access exoplayer methods inside recycler view adapter
我有一个播放视频的exoplayer。我想捕捉它的当前位置。
所以,在 MainActivity
lateinit var player: SimpleExoPlayer
fun timeCapture(view: View) {
Log.d(TAG,"${player.currentPosition}")
}
工作正常
但是,事实是需要在 Recycler 视图适配器上捕获此事件
在 MainActivity 中,我像这样将数据传递给回收器视图,
var viewAdapter = MainActivityAdapter(data)
因为 player
是 lateinit 我不能像下面这样在适配器中访问它
Log.d("logger","${MainActivity().player.currentPosition}")
这给出了错误。
那么,对此有何建议
你只需要创建一个全局变量就可以了。并在使用时小心处理错误。
GlobalVariables.kt
package com.company.notexist.model
import com.google.android.exoplayer2.SimpleExoPlayer
object GlobalVariables {
lateinit var player: SimpleExoPlayer
}
访问上面的 player
变量将其导入任何文件
import com.company.notexist.model.GlobalVariables.player
then rest of the code is normal
...
player = ExoPlayerFactory.newSimpleInstance(this)
id_player_view.player = player
...
...
然后在适配器上像这样使用它,
Log.d("logger","${player.currentPosition}")
但不要忘记导入语句和错误处理(即检查 null 和其他内容)
我有一个播放视频的exoplayer。我想捕捉它的当前位置。
所以,在 MainActivity
lateinit var player: SimpleExoPlayer
fun timeCapture(view: View) {
Log.d(TAG,"${player.currentPosition}")
}
工作正常
但是,事实是需要在 Recycler 视图适配器上捕获此事件
在 MainActivity 中,我像这样将数据传递给回收器视图,
var viewAdapter = MainActivityAdapter(data)
因为 player
是 lateinit 我不能像下面这样在适配器中访问它
Log.d("logger","${MainActivity().player.currentPosition}")
这给出了错误。
那么,对此有何建议
你只需要创建一个全局变量就可以了。并在使用时小心处理错误。
GlobalVariables.kt
package com.company.notexist.model
import com.google.android.exoplayer2.SimpleExoPlayer
object GlobalVariables {
lateinit var player: SimpleExoPlayer
}
访问上面的 player
变量将其导入任何文件
import com.company.notexist.model.GlobalVariables.player
then rest of the code is normal
...
player = ExoPlayerFactory.newSimpleInstance(this)
id_player_view.player = player
...
...
然后在适配器上像这样使用它,
Log.d("logger","${player.currentPosition}")
但不要忘记导入语句和错误处理(即检查 null 和其他内容)