Android:默认禁用 MediaRouteButton

Posted

技术标签:

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

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

这是布局:

<androidx.mediarouter.app.MediaRouteButton
    android:id="@+id/media_route_button"
    android:layout_
    android:layout_
    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);
        
    

有什么建议吗?

【问题讨论】:

这有什么更新吗?这是固定的吗? 【参考方案1】: 当您的设备和投射设备连接到同一网络时,

MediaRouteButton 将在屏幕上对您可见。

【讨论】:

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

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

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

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

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

【讨论】:

以上是关于Android:默认禁用 MediaRouteButton的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用log press cordova android的默认行为

在android上的html5视频标签中禁用默认的丑陋海报图像

我可以在使用 android studio 开发应用程序时禁用 android 默认摄像头(后置和前置)吗

电容器 - 从科尔多瓦迁移后,默认情况下在 Android 上禁用浮动通知

从Android 9(API级别28)开始,默认情况下禁用明文支持。

Phonegap:如何禁用默认触摸声音?