様々なOSに対応している定番のメディアセンターアプリKodi。
UIに若干癖があって動作も重いので、動画はもっぱらVLCで再生しているのですが、最近また使ってみようと思ってGalaxy Z Fold3 5G SC-55Bにインストールしてみました。
ところが、最初こそアプリが起動して動作していましたが、2回目の起動時からは画面が真っ暗で何も表示されなくなってしまいました。バックキーをスワイプすると効果音が鳴るので、アプリ自体は起動しているようですが何も映りません。
キャッシュの削除や端末を再起動してもダメ、果ては再インストールしても改善しないという有り様。流石にこれは異常過ぎます。
アプリは頻繁に更新されているわけでもないので、もしかしてAndroid 12に正式対応していなかったりするのかなと思いましたが、原因はリフレッシュレートにあったようです。
Kodiは60Hz以外のリフレッシュレートに非対応?
以下のページあたりを読んでもらえると分かりますが、Android版Kodiは端末のリフレッシュレートが60Hz以外に設定されていると正常に動作しないことがあるようです。
他のフォーラムなどの投稿も読んでみましたが、
- リフレッシュレートが20Hz-70Hzの範囲に設定されている場合は60Hzで動作する
- 上記の範囲外に設定されている場合や可変リフレッシュレートでは正常に動作しない?
- 現在Kodiの開発陣にAndroid向けの開発者がいないため公式に高リフレッシュレートに対応する見込みはなし?
といった感じで、Kodiを使いたいのであればリフレッシュレートを70Hz以下に下げる必要があるとのことです。。
確かにリフレッシュレートの設定を変更して60Hzに固定してみると、Galaxy Z Fold3に加えてGalaxy S20やGalaxy Tab S8+でもKodiが起動しました。
しかしいくらKodiが便利なアプリとはいえ、使用するたびにリフレッシュレートの設定を変更するのは現実的ではありません。もちろん常時60Hzに設定しておけばその必要はありませんが、可能なら常時高リフレッシュレートで使いたいに決まっています。
GitHubではこのリフレッシュレートの制限を取り除く方法も紹介されていますが、ソースコードを書き換えて自力でapkをコンパイルして…というのはなかなかハードルが高いです。いや、はるか昔にそんなことをしたことがなくはないですが、今そこまでやろうという気概はありません。。
もっと簡単な解決策はないかとあれこれ調べて試行錯誤してみたところ、Bixby Routinesを利用することで対策できたのでその方法を紹介します。
Bixby Routinesでリフレッシュレート設定を変更する
Bixby RoutinesはGalaxyスマートフォンやタブレットに搭載されているタスク自動化機能です。この手のアプリとしてはTaskerが有名ですね。
アプリの起動など特定の条件をトリガーとして、特定のタスクを自動で実行させるこの機能を利用することで、普段は高リフレッシュレートで使用してKodi起動時だけ60Hzに固定させることに成功しました。
ただし、トリガーとなる動作はKodiの起動では上手くいきませんでした。
Bixby Routinesに手動起動のルーチンを追加する
普通に考えるとKodiの起動をトリガーとして、リフレッシュレートの設定を変更させれば良いと考えますよね。
しかしこの方法だと変更が適用される前にリフレッシュレートのチェックが入ってしまうようで、ルーチンが実行されても画面は真っ暗のまま…あれこれ試してみましたが、Kodiの起動をトリガーとする時点でどうしようもなさそうです。
ここで躓いて諦めかけましたが、トリガーは「手動で開始」として以下の内容で登録するのが正解でした。
実行内容にリフレッシュレートの変更とKodiの起動を登録することで、リフレッシュレートを変更しつつKodiを実行することに成功しました。
作成したルーチンはウィジェットとしてホーム画面に配置することが可能なので、普通にアプリを起動するのと同じ感覚で実行することができます。
ただしこれで終わりではありません。もう1つ、Kodi終了後にリフレッシュレートを元に戻すためのルーチンも作成する必要があります。
Kodi以外のアプリ起動をトリガーとするルーチンを追加する
Bixby Routinesには、ルーチン終了時に変更した設定を元に戻す機能も用意されています。
しかしこの方法でリフレッシュレートを元に戻すためには、Kodi終了後にまたウィジェットをタップしなくてはいけません。トリガーを「手動で開始」にしているため、終了も手動で行わなくてはいけないというわけです。
それは非常に面倒なので、リフレッシュレートを自動で元に戻すルーチンも作成してしまいましょう。
Kodiの終了をトリガーにできればそれで良いのですが、Bixby Routinesではアプリの終了をトリガーとすることはできません。そこで私はKodi以外のすべてのアプリの起動をトリガーとすることにしました。
これならKodiを閉じてホーム画面が表示されているあいだは60Hzのままですが、いずれかのアプリを起動することですぐに最大120Hzの可変リフレッシュレートに切り替わります。
これでリフレッシュレートを最大120Hzに設定したまま、特に気にすることなくKodiを使用することができるようになりました。
まとめ
現状、Android版Kodiは端末のリフレッシュレートを60Hz以外に設定していると正常に動作しない恐れがあります。
もっとも確実な対策はリフレッシュレートを60Hzに固定して使用することです。しかしGalaxy Z Fold3などBixby Routinesを利用することが可能な機種であれば、わざわざリフレッシュレートを落とさなくてもルーチンを2つ追加することで対処できます。
Kodiが起動しなくて困っている方がいれば、とりあえずリフレッシュレート周りの設定を確認してみてください。
コメント