MediaQueue methods: android

This commit is contained in:
gianlucaparadise 2022-07-11 08:25:37 +02:00
parent e1b195a435
commit 65ed8a14a7
2 changed files with 25 additions and 4 deletions

View file

@ -10,10 +10,7 @@ import androidx.lifecycle.OnLifecycleEvent
import androidx.lifecycle.ProcessLifecycleOwner import androidx.lifecycle.ProcessLifecycleOwner
import com.gianlucaparadise.flutter_cast_framework.cast.CastDialogOpener import com.gianlucaparadise.flutter_cast_framework.cast.CastDialogOpener
import com.gianlucaparadise.flutter_cast_framework.cast.MessageCastingChannel import com.gianlucaparadise.flutter_cast_framework.cast.MessageCastingChannel
import com.gianlucaparadise.flutter_cast_framework.media.getFlutterMediaInfo import com.gianlucaparadise.flutter_cast_framework.media.*
import com.gianlucaparadise.flutter_cast_framework.media.getFlutterMediaStatus
import com.gianlucaparadise.flutter_cast_framework.media.getMediaLoadRequestData
import com.gianlucaparadise.flutter_cast_framework.media.getMediaQueueItem
import com.google.android.gms.cast.MediaError import com.google.android.gms.cast.MediaError
import com.google.android.gms.cast.MediaStatus.* import com.google.android.gms.cast.MediaStatus.*
import com.google.android.gms.cast.framework.CastContext import com.google.android.gms.cast.framework.CastContext
@ -414,6 +411,17 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
remoteMediaClient.queuePrev(null) remoteMediaClient.queuePrev(null)
} }
override fun getQueueItemCount(): Long {
return mediaQueue?.itemCount?.toLong() ?: -1
}
override fun getQueueItemAtIndex(index: Long?): PlatformBridgeApis.MediaQueueItem {
if (index == null || index < 0) return getFlutterMediaQueueItem(null)
val mediaQueueItem = mediaQueue?.getItemAtIndex(index.toInt(), true)
return getFlutterMediaQueueItem(mediaQueueItem)
}
override fun setMute(muted: Boolean?) { override fun setMute(muted: Boolean?) {
if (muted == null) return if (muted == null) return
val castSession = mCastSession ?: return val castSession = mCastSession ?: return

View file

@ -158,3 +158,16 @@ fun getFlutterMediaType(mediaType: Int?): PlatformBridgeApis.MediaType {
else -> PlatformBridgeApis.MediaType.generic else -> PlatformBridgeApis.MediaType.generic
} }
} }
fun getFlutterMediaQueueItem(item: MediaQueueItem?): PlatformBridgeApis.MediaQueueItem {
val mediaInto = getFlutterMediaInfo(item?.media)
return PlatformBridgeApis.MediaQueueItem().apply {
itemId = item?.itemId?.toLong() ?: -1
autoplay = item?.autoplay ?: false
playbackDuration = item?.playbackDuration ?: -1.0
startTime = item?.startTime ?: 0.0
preloadTime = item?.preloadTime ?: 0.0
media = mediaInto
}
}