【问题标题】:Android: MediaRouteButton is disabled by defaultAndroid:默认禁用 MediaRouteButton
【发布时间】:2021-04-17 09:02:21
【问题描述】:

我正在尝试使用 MediaRouteButton 和 exoPlayer 实现投射到电视的功能。我对 MediaRouteButton 有一个奇怪的问题,我只是按照tutorial 将 MediaRouteButton 实现为视图而不是菜单的一部分。这是我到目前为止所做的,但在运行应用程序后,MediaRouteButton 被禁用。

这是布局:

<androidx.mediarouter.app.MediaRouteButton
    android:id="@+id/media_route_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:mediaRouteTypes="user"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintStart_toStartOf="parent"
     />

这是活动中的 kotlin 代码:

class TestActivity : AppCompatActivity() {
    
    //var APP_ID = "4F8B3483"
    var mMediaRouteButton: MediaRouteButton? = null
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_test)

        mMediaRouteButton =  findViewById(R.id.media_route_button);

        CastContext.getSharedInstance(this);
        CastButtonFactory.setUpMediaRouteButton(this, mMediaRouteButton);
        
    }
}

有什么建议吗?

【问题讨论】:

  • 这有什么更新吗?这是固定的吗?

标签: android casting television


【解决方案1】:
当您的设备和投射设备连接到同一网络时,

MediaRouteButton 将在屏幕上对您可见。

【讨论】:

  • 嗨Wahdat,谢谢你的回答,他们已经连接到同一个网络,活动正在扩展AppCompayActivity,正如它在android官方网站上所建议的那样,几乎所有的教程都有相同的方法,但仍然找不到解决办法。 MediaRouteButton 显示但不工作(已禁用)。
【解决方案2】:

您可以先尝试使用默认的媒体接收器ID:

  • CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID,查看您的代码是否有效。如果一切正常,按钮将可见并启用。

如果仍然不可见,请尝试添加:

  • castContext.addCastStateListener { state: Int -> } - 并基于回调手动显示/隐藏 MediaRouteButton。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-19
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    相关资源
    最近更新 更多