1

そこで、AppCompat ではなく ActionBarSherlock に依存するように Mediarouter ソースを変更しました。ただし、現在、MediaRouteAdapter からのコールバックonDeviceAvailable(...)は呼び出されていません。

これを機能させる方法についてのアイデアはありますか?

キャスト ボタンを常に表示したままにしたくありません。onDeviceAvailable(..)むしろ、デバイスが利用可能な場合にのみ表示するために使用したいと考えています。

4

1 に答える 1

2

これを修正する方法のハックを見つけました。

appcompat を使用する場合、キャスト アイコンは、の実装に基づいて、ネットワークに chromecast デバイスがある場合にのみ表示されますonDeviceAvailable(...)

ただし、ABS を使用する場合onDeviceAvailable(...)、ネットワーク上で Chromecast デバイスが使用可能になったときにこのメソッドは呼び出されません。したがって、キャスト アイコンを表示するには、常に表示されるように設定する必要があります。

問題は、キャスト アイコンが常に表示されることです (表示を表示に設定した場合、またはアクションバーに追加した場合)。

ただし、 MediaRouterにはさまざまなビュー ステートがあります。1 つはキャスト デバイスが使用可能な場合、もう 1 つは使用可能なデバイスがない場合です。

Mediarouter ライブラリは、デバイスが使用可能かどうかを示すアイコンである描画可能な png で構成されています。

「ルートが利用できない」ものを空のリソース、またはアプリに適したものに置き換えるだけです。

デバイスが利用可能な場合は正しいキャスト アイコンが表示され、利用できない場合はカスタム リソースが表示されます (リソースが空白のビューの場合は空白になります)。

mediarouter のソース コードを入手する方法と、これを修正する方法の詳細は次のとおりです

于 2013-10-22T21:33:08.970 に答える