- ベストアンサー
Androidのメディアサーバーの暴走
2012年版のNexus7を使っています。 ウォークマンが壊れたため、Nexus7に音楽を入れているのですが、メディアサーバーの暴走に頭を抱えています。 音楽を再生した後にメディアサーバーが暴走し、バッテリーを異常なまでに消費しています。 原因を調べたところ、ダウンロードマネージャーが原因のようで、ダウンロードマネージャーを強制停止させれば暴走は治まるようです。 また、暴走の直接の原因は日本語名の音楽ファイル(2バイト文字)が原因のようです。 …と、ここまでは良いのですが、音楽を聴いた後に毎回ダウンロードマネージャーを強制停止させるのはとても面倒くさいです。 日本語のせいで暴走するというのも正直言って欠陥としか思えません。そりゃあAndroidOSは日本の開発ではありませんので想定外と言えば想定外なのかもしれませんが…。 いくら2バイト文字が開発国にとって想定されていないとしても、日本で売られる以上はそういったものに対処して欲しいものですが…。 日本語のファイルがあってもAndroidの機能が暴走しないようには出来ないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ふと気付きました。 その問題の曲には、日本語のアーティスト名や曲名が含まれていますよね。 音楽ファイルに含まれている文字コードには、ローカル文字コードの物とUnicodeのタイプとがあります。 iPod登場以前から続く一般的形態としてはローカル文字コード、iTunesはUnicodeで文字を出力しています。 Walkman用アプリであるSonicStageはローカル文字コードで、後継のx-アプリも恐らくローカル文字コードでしょう。 音楽ファイルのローカル文字コードは日本語であればShift-JIS(2バイト文字)が一般的です。 これは想像ですが、もしかするとそのメディアサーバーは、ローカル文字コードとUnicodeの判定処理か判定違いで誤動作しているのかも知れません。 もしそうであれば対処方法は3つ。 正統手段としてはGoogleに問題を報告し、問題を起こすファイルが著作権フリーでないなら著作権フリーの曲を探し(曲じゃなくてピーなどの単音や雑音でもいい)、問題を起こす曲と同じ情報を著作権フリーの曲ファイルに付与する。 この時、問題を起こすファイルを生成したツールを使い、著作権フリーの曲にアーティスト名や曲名、ジャンルなどを、問題を起こすファイルとまったく同じになるように書き込む。 そしてその著作権フリーの曲で問題が再現できるか確認し、再現できるならGoogleに渡す。 正統ではない方法としては、Nexus 7のルートを取り、メディアサーバーを無効化してみる。 メディア「サーバー」なので、もしかするとローカルストレージにある曲の再生には必須ではない可能性がある。 3つめの方法としては、同じくNexus 7のルートを取り、Taskerというアプリのマクロを使って、曲毎にメディアサーバーが暴走するなら音楽再生アプリの実行中はメディアサーバーを終了させ、音楽再生アプリの終了後に暴走するなら音楽再生アプリの終了を検出したらメディアサーバーを終了させるマクロを組む。 思いつくのはこんなところです。
その他の回答 (2)
- unokwave
- ベストアンサー率58% (966/1654)
Androidで日本語は2バイト文字ではありません。 Androidは文字コードがUTF-8で、世界の文字を統一的に扱える1~5バイトの可変長になっています。 UTF-8だとヨーロッパの文字も世界の殆どの文字も1バイトで表現できないので、それが原因ならもっと大きな問題となって騒がれていると思います。
お礼
そうなのですか。では暴走するのは何故でしょうか…。
- Tasuke22
- ベストアンサー率33% (1799/5383)
プレイヤーは何をお使いか書かれていませんが、プレイヤーを変えたら如何でしょう。 私はRocket music playerを主に使っていますが問題は発生しないです。 分かっていないだけかもしれませんけど。
お礼
プレイヤーはNeutron Music Playerを使用しています。 恐らくプレイヤーの問題ではないと思います。
お礼
色々試してみます。ありがとうございました。