MediaSessionCompat.Callback onSeekTo() 回调始终传递正在播放的媒体中的绝对位置。但是,我的应用程序中有些情况涉及章节级别(整个媒体分为各个章节)。有时,播放器(包括通知中显示的播放器控件)确实会相对于章节进行搜索。
有没有办法在seek回调中找到seek操作的原点?
class MyMediaSessionCallbackHandler: MediaSessionCompat.Callback() {
...
override fun onSeekTo(position: Long) {
// sometimes a relative offset is passed
// how to get that information - is the offset relative or absolute?
}
}
我知道“章节”的概念超出了媒体会话本身的范围,只是想知道是否有一种方法可以向媒体会话添加一些上下文来限定寻求回调?
我正在使用
androidx.media:media:1.6.0
和 Exoplayer 版本 2.17.1
显然这是不可能的,必须由外部管理。一种选择是在玩家发送的位置中嵌入一个标记 - 例如,添加任意大的偏移量。在 onSeekTo() 回调中检测此转变并使用它来确定该位置是源自应用程序还是外部。