mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2026-08-26 21:34:05 +02:00
native plugin: add getStreamSyncData()
This commit is contained in:
@@ -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
|
@PluginMethod
|
||||||
fun pausePlayer(call: PluginCall) {
|
fun pausePlayer(call: PluginCall) {
|
||||||
Handler(Looper.getMainLooper()).post() {
|
Handler(Looper.getMainLooper()).post() {
|
||||||
|
|||||||
@@ -81,6 +81,8 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||||||
var mediaButtonClickTimeout: Long = 1000 //ms
|
var mediaButtonClickTimeout: Long = 1000 //ms
|
||||||
var seekAmount: Long = 20000 //ms
|
var seekAmount: Long = 20000 //ms
|
||||||
|
|
||||||
|
private var lastPauseTime: Long = 0 //ms
|
||||||
|
|
||||||
fun setCustomObjectListener(mylistener: MyCustomObjectListener) {
|
fun setCustomObjectListener(mylistener: MyCustomObjectListener) {
|
||||||
listener = mylistener
|
listener = mylistener
|
||||||
}
|
}
|
||||||
@@ -472,6 +474,8 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||||||
mPlayer.prepare()
|
mPlayer.prepare()
|
||||||
mPlayer.playWhenReady = currentAudiobook!!.playWhenReady
|
mPlayer.playWhenReady = currentAudiobook!!.playWhenReady
|
||||||
mPlayer.setPlaybackSpeed(audiobook.playbackSpeed)
|
mPlayer.setPlaybackSpeed(audiobook.playbackSpeed)
|
||||||
|
|
||||||
|
lastPauseTime = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -479,6 +483,18 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||||||
return mPlayer.currentPosition
|
return mPlayer.currentPosition
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getTheLastPauseTime() : Long {
|
||||||
|
return lastPauseTime
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getPlayStatus() : Boolean {
|
||||||
|
return mPlayer.isPlaying
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getCurrentAudiobookId() : String {
|
||||||
|
return currentAudiobook?.id.toString()
|
||||||
|
}
|
||||||
|
|
||||||
fun play() {
|
fun play() {
|
||||||
if (mPlayer.isPlaying) {
|
if (mPlayer.isPlaying) {
|
||||||
Log.d(tag, "Already playing")
|
Log.d(tag, "Already playing")
|
||||||
@@ -489,6 +505,7 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||||||
|
|
||||||
fun pause() {
|
fun pause() {
|
||||||
mPlayer.pause()
|
mPlayer.pause()
|
||||||
|
lastPauseTime = System.currentTimeMillis()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun seekPlayer(time: Long) {
|
fun seekPlayer(time: Long) {
|
||||||
@@ -511,6 +528,7 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
|
|||||||
if (mPlayer.playbackState == Player.STATE_READY) {
|
if (mPlayer.playbackState == Player.STATE_READY) {
|
||||||
mPlayer.clearMediaItems()
|
mPlayer.clearMediaItems()
|
||||||
}
|
}
|
||||||
|
lastPauseTime = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sendClientMetadata(stateName: String) {
|
fun sendClientMetadata(stateName: String) {
|
||||||
|
|||||||
Reference in New Issue
Block a user