mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2025-07-30 23:54:30 +02:00
native plugin: add getStreamSyncData()
This commit is contained in:
parent
274a683be7
commit
b9de9cf9b0
2 changed files with 38 additions and 0 deletions
|
@ -85,6 +85,26 @@ class MyNativeAudio : Plugin() {
|
|||
}
|
||||
}
|
||||
|
||||
@PluginMethod
|
||||
fun getStreamSyncData(call: PluginCall) {
|
||||
Handler(Looper.getMainLooper()).post() {
|
||||
var isPlaying = playerNotificationService.getPlayStatus()
|
||||
var lastPauseTime = playerNotificationService.getTheLastPauseTime()
|
||||
Log.d(tag, "Get Last Pause Time $lastPauseTime")
|
||||
var currentTime = playerNotificationService.getCurrentTime()
|
||||
Log.d(tag, "Get Current Time $currentTime")
|
||||
//if (!isPlaying) currentTime -= playerNotificationService.calcPauseSeekBackTime()
|
||||
var id = playerNotificationService.getCurrentAudiobookId()
|
||||
Log.d(tag, "Get Current id $id")
|
||||
val ret = JSObject()
|
||||
ret.put("lastPauseTime", lastPauseTime)
|
||||
ret.put("currentTime", currentTime)
|
||||
ret.put("isPlaying", isPlaying)
|
||||
ret.put("id", id)
|
||||
call.resolve(ret)
|
||||
}
|
||||
}
|
||||
|
||||
@PluginMethod
|
||||
fun pausePlayer(call: PluginCall) {
|
||||
Handler(Looper.getMainLooper()).post() {
|
||||
|
|
|
@ -81,6 +81,8 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||
var mediaButtonClickTimeout: Long = 1000 //ms
|
||||
var seekAmount: Long = 20000 //ms
|
||||
|
||||
private var lastPauseTime: Long = 0 //ms
|
||||
|
||||
fun setCustomObjectListener(mylistener: MyCustomObjectListener) {
|
||||
listener = mylistener
|
||||
}
|
||||
|
@ -472,6 +474,8 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||
mPlayer.prepare()
|
||||
mPlayer.playWhenReady = currentAudiobook!!.playWhenReady
|
||||
mPlayer.setPlaybackSpeed(audiobook.playbackSpeed)
|
||||
|
||||
lastPauseTime = 0
|
||||
}
|
||||
|
||||
|
||||
|
@ -479,6 +483,18 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||
return mPlayer.currentPosition
|
||||
}
|
||||
|
||||
fun getTheLastPauseTime() : Long {
|
||||
return lastPauseTime
|
||||
}
|
||||
|
||||
fun getPlayStatus() : Boolean {
|
||||
return mPlayer.isPlaying
|
||||
}
|
||||
|
||||
fun getCurrentAudiobookId() : String {
|
||||
return currentAudiobook?.id.toString()
|
||||
}
|
||||
|
||||
fun play() {
|
||||
if (mPlayer.isPlaying) {
|
||||
Log.d(tag, "Already playing")
|
||||
|
@ -489,6 +505,7 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||
|
||||
fun pause() {
|
||||
mPlayer.pause()
|
||||
lastPauseTime = System.currentTimeMillis()
|
||||
}
|
||||
|
||||
fun seekPlayer(time: Long) {
|
||||
|
@ -511,6 +528,7 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||
if (mPlayer.playbackState == Player.STATE_READY) {
|
||||
mPlayer.clearMediaItems()
|
||||
}
|
||||
lastPauseTime = 0
|
||||
}
|
||||
|
||||
fun sendClientMetadata(stateName: String) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue