Liridon Sadiku
Liridon Sadiku

Reputation: 349

Android: MediaRouteButton is disabled by default

I am trying to implement cast to tv feature using MediaRouteButton and exoPlayer. I have a strange issue with MediaRouteButton, I just followed this tutorial and implemented MediaRouteButton as a view not as part of the menu. Here what I have done till now, but after running the app, the MediaRouteButton is disabled.

This is layout:

<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"
     />

This is kotlin code inside activity:

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);
        
    }
}

Any suggestions?

Upvotes: 3

Views: 1524

Answers (3)

Zahra Jamshidi
Zahra Jamshidi

Reputation: 667

UPDATE July 7th 2023: this method is deprecated and does nothing

According to documentation:

the button is disabled and cannot be clicked unless setAlwaysVisible is called.

REF: https://developer.android.com/reference/androidx/mediarouter/app/MediaRouteButton

Upvotes: 2

nvr
nvr

Reputation: 141

You can try to use default media receiver id first:

  • CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID, to see if your code works at all. If everything is ok, button will be visible and enabled.

If it's still not visible try to add:

  • castContext.addCastStateListener { state: Int -> } - and based on the callback show/hide MediaRouteButton manually.

Upvotes: 1

Wahdat Jan
Wahdat Jan

Reputation: 4156

MediaRouteButton will be visible to you on the screen , when your device and casting device is connecting to the same Network .

Upvotes: 0

Related Questions