RemoteMediaClient tracksChooser android
This commit is contained in:
parent
e52b24861c
commit
9c8327b6ab
3 changed files with 24 additions and 3 deletions
|
|
@ -49,4 +49,7 @@ dependencies {
|
||||||
// Lifecycle
|
// Lifecycle
|
||||||
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
|
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
|
||||||
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
||||||
|
|
||||||
|
// To open TracksChooserDialogFragment
|
||||||
|
implementation "androidx.activity:activity-ktx:1.3.1"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.gianlucaparadise.flutter_cast_framework
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import androidx.lifecycle.LifecycleObserver
|
import androidx.lifecycle.LifecycleObserver
|
||||||
import androidx.lifecycle.OnLifecycleEvent
|
import androidx.lifecycle.OnLifecycleEvent
|
||||||
|
|
@ -18,6 +19,7 @@ import com.google.android.gms.cast.framework.CastSession
|
||||||
import com.google.android.gms.cast.framework.SessionManager
|
import com.google.android.gms.cast.framework.SessionManager
|
||||||
import com.google.android.gms.cast.framework.SessionManagerListener
|
import com.google.android.gms.cast.framework.SessionManagerListener
|
||||||
import com.google.android.gms.cast.framework.media.RemoteMediaClient
|
import com.google.android.gms.cast.framework.media.RemoteMediaClient
|
||||||
|
import com.google.android.gms.cast.framework.media.TracksChooserDialogFragment
|
||||||
import io.flutter.embedding.engine.plugins.FlutterPlugin
|
import io.flutter.embedding.engine.plugins.FlutterPlugin
|
||||||
import io.flutter.embedding.engine.plugins.activity.ActivityAware
|
import io.flutter.embedding.engine.plugins.activity.ActivityAware
|
||||||
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
|
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
|
||||||
|
|
@ -250,7 +252,7 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
|
||||||
|
|
||||||
override fun getMediaInfo(): PlatformBridgeApis.MediaInfo {
|
override fun getMediaInfo(): PlatformBridgeApis.MediaInfo {
|
||||||
val remoteMediaClient: RemoteMediaClient = remoteMediaClient
|
val remoteMediaClient: RemoteMediaClient = remoteMediaClient
|
||||||
?: throw IllegalStateException("Missing cast session")
|
?: throw IllegalStateException("Missing cast session")
|
||||||
|
|
||||||
val hostMediaInfo = remoteMediaClient.mediaInfo ?: return PlatformBridgeApis.MediaInfo()
|
val hostMediaInfo = remoteMediaClient.mediaInfo ?: return PlatformBridgeApis.MediaInfo()
|
||||||
|
|
||||||
|
|
@ -272,6 +274,22 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
|
||||||
remoteMediaClient.stop()
|
remoteMediaClient.stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun showTracksChooserDialog() {
|
||||||
|
if (activity !is FragmentActivity) {
|
||||||
|
Log.e(TAG, "Error: no_fragment_activity, FlutterCastFramework requires activity to be a FragmentActivity.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
val activity = activity as? FragmentActivity
|
||||||
|
if (activity == null) {
|
||||||
|
Log.d(TAG, "showTracksChooserDialog - missing context")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
TracksChooserDialogFragment.newInstance()
|
||||||
|
.show(activity.supportFragmentManager, "FlutterCastFrameworkTracksChooserDialog")
|
||||||
|
}
|
||||||
|
|
||||||
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
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.gianlucaparadise.flutter_cast_framework_example
|
package com.gianlucaparadise.flutter_cast_framework_example
|
||||||
|
|
||||||
import io.flutter.embedding.android.FlutterActivity;
|
import io.flutter.embedding.android.FlutterFragmentActivity
|
||||||
|
|
||||||
class MainActivity: FlutterActivity() {
|
class MainActivity: FlutterFragmentActivity() {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue