LoginSignup
3
5

More than 5 years have passed since last update.

Android7に更新すると音が鳴らなくなる・音が消える

Posted at

手持ちのAndroid端末をAndroid7(Nougat)に更新したところ
現在開発中のアプリ(レトロゲーム風RPG)の効果音が鳴らなくなった。
https://play.google.com/store/apps/details?id=com.game.sh_crew.rebuildingsaga

アプリ起動直後には効果音が鳴っているのだが
あるタイミングを境に、効果音がまったく鳴らなくなってしまった。

戦闘のBGMなどは影響がないため
原因を調査したところ
BGM・効果音ともにMediaPlayerクラスを用いていたが
効果音のみMediaPlayerインスタンスの解放処理を実施していないことが原因だった。

■修正前

       try
        {
            mp = MediaPlayer.create(activity.getApplicationContext(), res);
            mp.start();
        }
        catch (Exception e)
        {
            RsLogger.error("Music Error.", e);
        }

■修正後

       try
        {
            // すでにMediaPlayerが生成されているか?
            if (mp != null)
            {
                // リリース
                mp.reset();
                mp.release();
                mp = null;
            }
            mp = MediaPlayer.create(activity.getApplicationContext(), res);
            mp.start();
        }
        catch (Exception e)
        {
            RsLogger.error("Music Error.", e);
        }

BGMの方はrelease処理が実装されているため、きちんと音が流れ続けていた。
Android7以前はreleaseしなくても問題なかったのだが……。

きちんとリソースは解放しなきゃいけないということですね。
(そもそも効果音ならSoundPoolクラスを用いるべきだったのかも)

ネットを調べると、音が鳴らなくなる現象が結構発生しているみたい。
同じような現状が発生しているアプリは
リリース処理が漏れているのかもしれないなあ。

3
5
2

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
5