小编nh7*_*nh7的帖子

Android Media3 会话和控制器 - 播放未开始

我正在尝试实现 Android Media3 MediaSessionService 和 MediaController,但由于某种原因播放无法开始。我究竟做错了什么?我认为我所做的一切都完全按照在后台播放媒体中所述进行。

播放服务.kt

class PlaybackService : MediaSessionService() {

    private var mediaSession: MediaSession? = null

    override fun onCreate() {
        super.onCreate()
        val player = ExoPlayer.Builder(this).build()
        mediaSession = MediaSession.Builder(this, player).build()
    }

    override fun onGetSession(controllerInfo: MediaSession.ControllerInfo): MediaSession? =
        mediaSession

    override fun onDestroy() {
        mediaSession?.run {
            player.release()
            release()
            mediaSession = null
        }
        super.onDestroy()
    }
}
Run Code Online (Sandbox Code Playgroud)

MainActivity.kt

class MainActivity : ComponentActivity() {

    private lateinit var controllerFuture: ListenableFuture<MediaController>
    private lateinit var controller: MediaController

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        log("onCreate MainActivity") …
Run Code Online (Sandbox Code Playgroud)

android android-mediaplayer exoplayer android-mediasession android-jetpack-compose

13
推荐指数
1
解决办法
2929
查看次数

CastContext.getSharedInstance(Context) 现已弃用

正如标题所示,CastContext.getSharedInstance(Context)现已弃用:

getSharedInstance(Context context):此方法已弃用。当 Cast SDK 无法加载内部 Cast 模块时,请使用 getSharedInstance(Context, Executor) 来处理异常。 https://developers.google.com/android/reference/com/google/android/gms/cast/framework/CastContext

指定 Executor 并返回 CastContext 的正确方法是什么?我让它像这样工作,但我想知道这是否是最好的方法:

CastContext
    .getSharedInstance(context, Executors.newSingleThreadExecutor())
    .addOnSuccessListener(castContext -> {
        //do something with castContext
    })
    .addOnFailureListener(exception -> {
        //throw exception
    });
Run Code Online (Sandbox Code Playgroud)

android google-play-services chromecast android-cast-api

9
推荐指数
1
解决办法
1997
查看次数