Sony Ericsson Xperia X10でAndroid 2.3(PowerAmpを含むさまざまなプレーヤーを使用)で音楽を再生しようとすると、信頼性の高いサウンドが得られません。音楽が一時停止するのは、たとえば次の場合です。
- 電源ボタンを押す(特に繰り返し)(
request_suspend_state: sleep;request_suspend_state: wakeup
dmesgで) send sigkill to 15497 (ndroid.settings), adj 8, size 6428
dmesgのようなメッセージが表示されたとき- 一部のプログラムが変更された画面の向きに反応したとき。
- wifi接続が確立されたとき、強制的に「再関連付け」したとき
- WidgetLocker画面との間を除いて、ホーム画面(AWDLauncher)からアプリケーションにアクセスする場合。
- 機内モードを有効/無効にしたとき。
- ディスプレイがオフのとき(最も煩わしい)
音楽を再生する本当に安定した方法が、StayAwakeを使用してディスプレイを強制的にオンにすることである場合は、Wi-Fiをオフにし、機内モードをオンにし、アプリケーションを切り替えないでください。のようにCPUを開始while true; do true; done
しても、チョッピングには影響しません。
そして、それはAndroid 2.1上で多かれ少なかれうまくいっていました。
「/ serv / dev / msm_pcm_outに書き込む」「mediaserv」プロセスには、リアルタイムioとスケジューリングの優先順位がありますが、とにかく音が途切れます。mplayer -ao pcm:file=/dev/msm_pcm_out
サウンドチョップの少ない状態でコンソールから再生を開始した場合(特に、電源ボタンや重いプロセスの束の読み込みによって中断されない)、画面がオフの場合でも正常に動作しない場合(ionice -c1 -p4 cat /dev/urandom > /dev/msm_pcm_out
ぎくしゃくした場合でも)
音楽Aを通常の方法で開始し、音楽Bをmplayerを使用して/ dev / msm_pcm_out(混合する)に開始すると、音楽Aは通常よりもチョップし、通常、AがチョップしているときにBが聞こえます。画面をオフにすると、AとBの両方が同期してチョップします(Bを停止すると、Aの再生が比較的スムーズになります)。
バックグラウンドロードの存在下でAndroidで音楽を確実に再生する方法は?どこかにバグを報告する必要がありますか?
アップデート音楽を再生する方法が見つかりました。不便ですが、チョッピングはありません:
- 「CPUオン、画面オフ、キーボードオフ」モードでWakeLockを起動します。
- mplayerを使用して、Androidをバイパスして音楽を再生します。
ionice -c1 -n4 \
schedtool -R -p 3 -e \
mplayer -really-quiet \
-af volume=-26 -quiet \
-ao pcm:file=/dev/msm_pcm_out,nowaveheader \
/mnt/sdcard/music/something.ogg
# (created script to start it easily, of course)
起動するアプリケーションの数、Wifi、向き、飛行機モードの処理に関係なく、途切れることなく再生されます。「省電力」のcpufreqガバナーを使用しても(すべて非常に遅いが、音楽は問題なく再生される)。したがって、ハードウェアにはそれを再生するのに十分なリソースがあります。
Update 2の ように見える
for i in `pgrep ''`; do schedtool -D $i; done
つまり、「すべてのプロセスにアイドル優先順位を設定」は、{プログラムを起動し、画面をロックし、画面を回転させ、他のモバイルネットワークステーションに再接続する}場合でも、ゲームの入力遅延を犠牲にして音楽を正常に再生します。それがなぜ起こるか正確に知らない。