Як змусити Android відтворювати музику надійно, не рубаючи?


10

Коли я намагаюся відтворювати музику на Android 2.3 (використовуючи різні плеєри, включаючи PowerAmp) на Sony Ericsson Xperia X10, я отримую не надійний звук. Музика на короткий час робить паузу, наприклад, коли:

  • Я натискаю кнопку живлення (особливо кілька разів) ( request_suspend_state: sleep;request_suspend_state: wakeupу dmesg)
  • Коли я бачу повідомлення, як send sigkill to 15497 (ndroid.settings), adj 8, size 6428у dmesg
  • Коли якась програма реагує на зміну орієнтації екрана.
  • Коли налагоджується з'єднання через Wi-Fi, я змушую його "зв'язатись"
  • Коли я переходжу на / з програми з головного екрана (AWDLauncher), за винятком екрана WidgetLocker, до / з нього.
  • Коли я вмикаю / вимикаю режим літака.
  • Коли дисплей вимкнено (найбільш дратує)

Коли єдиний дійсно стабільний спосіб відтворення музики - це використання StayAwake для примусового відображення, вимкнення Wi-Fi, включення режиму літака та не перемикання програм. Запуск процесорів, як, наприклад while true; do true; done, не впливає на рубання.

І вона грала більш-менш чудово на Android 2.1.

Процес "mediaserv" (який записує в / dev / msm_pcm_out) має пріоритет у режимі реального часу для іо і планування, але звук у будь-якому випадку є холодним. Якщо я почне грати з консолі із 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 відбиває більше, ніж зазвичай, і я зазвичай чую B, коли A знаходиться в рубанні. Коли я вимикаю екран, синхронізуються і A, і B (зупинка B призводить до відносно більш вільного відтворення A таким чином).

Як надійно відтворювати музику на Android при фоновому завантаженні? Чи потрібно десь повідомити про помилку?

Оновлення Знайдено спосіб відтворення музики. Незручно, але без рубання :

  1. Запустіть WakeLock в режимі "ЦП увімкнено, екран вимкнено, клавіатура вимкнена"
  2. Використовуйте 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 "powerave" (все дуже повільно, але музика грає чудово). Тож у апаратного забезпечення достатньо ресурсів для його відтворення.

Оновлення 2 Схоже, що робити

for i in `pgrep ''`; do schedtool -D $i; done

тобто "Встановити пріоритет у режимі очікування для всіх процесів", музика відтворює чудово, навіть коли я {запуску програм, блокування екрана, повернення екрана; він знову підключається до інших станцій мобільної мережі} за рахунок деякого відставання введення в іграх. Не знаю точно, чому це відбувається.


Який у вас пристрій? Здається, це дуже обмежено ресурсами. Можливо, швидкий та легкий користувальницький ROM покращить продуктивність.
Потік

Sony Ericsson Xperia X10. Що означає "обмежений ресурс"? Він повинен надавати пріоритет медіа перед звичайними видами діяльності, дозволяючи безперебійному відтворенню незалежно від того, яке фонове завантаження присутнє. Також спроба викликати навантаження, явно використовуючи важкі додатки, що вивішують процесор і пам'ять, не призводять до похмурого звуку, тоді як просто перезв’язок Wifi завжди створює відбиток. Крім того, він грав більш-менш чудово на Android 2.1
Vi0

Музика грає так само, навіть я змушую powerave керуючий cpufreq (а неприємне навантаження процесора в цьому випадку становить близько 20%). Які ресурси можуть бути короткими?
Vi0

З того, що я можу прочитати з ваших додаткових коментарів: жодного. І я також ніколи не чув, щоб у X10 була загальна проблема з відтворенням аудіо.
Потік

У тому числі після оновлення до Android 2.3?
Vi0

Відповіді:


0

Спробуйте вимкнути будь-які програми або обладнання, яке використовує багато ресурсів телефону. Вимкніть GPS, WIFI, мережевий сервіс і затемніть підсвічування. Також вимкніть будь-які інші запущені програми, ніж ті, які вам потрібні для відтворення музики. Якщо це все ще не працює, можливо, у вашому пристрої недостатньо пам'яті.


Схоже, загальна порада, а не рішення / усунення помилки. Я спробував різні режими (описані в питанні). Вбивця OOM - це лише одна з речей, яка викликає помилку.
Vi0

0

Збільшити Audio Bufferрозмір.

Я використовую програвач PlayerPro Music Player зі своїм пакетом DSP. DSP-пакет дозволяє мені регулювати розмір буфера звуку. Мені ніколи не потрібно було користуватися цією функцією, але вона допоможе тобі.

Ви також можете знайти інші музичні плеєри для підтримки цієї функції. Ключовим є Audio Buffer.

Крім того, ви можете знизити якість музики, а також завантаження системи.


Принаймні встановлення максимального розміру буфера в програвачі Mixzing не допомагає.
Vi0

1
"зменшити якість музики, а також завантаження системи" -> вирішення, не виправити. У мене вже є хиткі обхідні шляхи (див. "Оновлення")
Vi0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.