LoginSignup
3
2

More than 3 years have passed since last update.

ExoPlayerのv2.11で個人的に便利だと思ったやつ

Posted at

WakeLockを自動で取得

バックグラウンドでの安定して再生させるためにWakeLockを取得するわけですが、WakeLockは取得したままだと電池を消耗してしまうので再生状態に応じてWakeLockを自動で取得 / 開放してくれる機能が付きました。

Add automatic WakeLock handling to SimpleExoPlayer, which can be enabled by calling SimpleExoPlayer.setHandleWakeLock (#5846). To use this feature, you must add the WAKE_LOCK permission to your application's manifest file.

使い方はかんたん。 setHandleWakeLocktrue を設定するだけ

    SimpleExoPlayer.Builder(context).build().also {
        it.setHandleWakeLock(true)
    }

中を見てみると WakeLockManager という WakeLock を管理するクラスがいて、こいつが管理する模様。Streaming再生する場合は、 WifiLock も同じところで取るだろうから、 #5846 のissueにかかれているように WifiLock も取れるオプションつけてくれるともっと嬉しかったですね。

イヤホンが外れたら再生を止める

今まで、ブロードキャストで流れてくる ACTION_AUDIO_BECOMING_NOISY を受けとって自分で止める処理を書かないといけなかったですが、自動で止めてくれるオプションが入りました。

Add automatic "audio becoming noisy" handling to SimpleExoPlayer, which can be enabled by calling SimpleExoPlayer.setHandleAudioBecomingNoisy.

使い方はかんたん。 setHandleAudioBecomingNoisytrue を設定するだけ

    SimpleExoPlayer.Builder(context).build().also {
        it.setHandleAudioBecomingNoisy(true)
    }

イヤホン外れても再生し続けるとかなかなかないと思うので、デフォルトでOnでもいいんじゃないかと思うオプションですね。BroadcastReceiverに登録・解除するのがまるっとなくなるのは良いですが、受信しているときにしている処理が停止しているだけなので、そのときに一緒に別の処理をしたい場合は自前で書くしか無いのがつらいです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2