如何使Android可靠地播放音乐而不会斩波?


10

当我尝试在索尼爱立信Xperia X10上的Android 2.3上(使用包括PowerAmp在内的各种播放器)播放音乐时,声音不可靠。音乐会暂停一小段时间,例如,在以下情况下:

  • 我按下电源按钮(尤其是反复按)(request_suspend_state: sleep;request_suspend_state: wakeup以dmesg键)
  • 当我看到类似send sigkill to 15497 (ndroid.settings), adj 8, size 6428dmesg的消息时
  • 当某些程序对更改的屏幕方向做出反应时。
  • 建立wifi连接后,当我强制其“重新关联”时
  • 当我从主屏幕(AWDLauncher)进入/从应用程序进入时,除了WidgetLocker屏幕/从中进入。
  • 当我启用/禁用飞行模式时。
  • 显示屏关闭时(最烦人)

当播放音乐的唯一真正稳定的方法是使用StayAwake强制显示时,请关闭Wi-Fi,打开飞行模式并不要切换应用程序。像while true; do true; done这样启动CPU猪不会影响斩波。

而且它在Android 2.1上的运行情况差不多。

“ mediaserv”进程(写入/ dev / msm_pcm_out)具有实时io和调度优先级,但是声音仍然不稳定。如果我从控制台开始播放时mplayer -ao pcm:file=/dev/msm_pcm_out声音不那么刺耳(值得注意的是,它不会因电源按钮/加载大量繁重的进程而中断),但在屏幕关闭时仍然表现不正常(即使ionice -c1 -p4 cat /dev/urandom > /dev/msm_pcm_out是起伏不定)

当我以通常的方式启动音乐A并使用mplayer将音乐播放器B启动到/ dev / msm_pcm_out(将它们混合)时,音乐A会比平时更响声,并且当A处于响声时我通常会听到B声。当我关闭屏幕时,A和B会同时斩波(停止B会以这种方式相对流畅地播放A)。

在存在背景负载的情况下如何在Android上可靠地播放音乐?我应该在某处报告错误吗?

更新找到了一种播放音乐的方法。不方便,但不切碎

  1. 在“ CPU开启,屏幕关闭,键盘关闭”模式下启动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调速器(一切都非常慢,但是音乐可以播放)。因此,硬件具有足够的资源来播放它。

更新2 看起来像在做

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

即,“为所有进程设置空闲优先级”即使我{启动程序,锁定屏幕,旋转屏幕;它重新连接到其他移动网络站点},也可以播放音乐,但是会浪费一些游戏输入延迟。不知道为什么会这样。


你有什么设备?听起来资源非常有限。也许快速轻巧的自定义ROM可以提高性能。
流量

索尼爱立信Xperia X10。什么是“资源受限”?它应该优先处理媒体而不是通常的活动,从而可以流畅地播放当前存在的背景负载。通过显式使用占用大量CPU和内存的繁重应用程序尝试造成负载也不会导致音频断断续续,而只是重新关联Wifi 总是会产生断续。此外,它起到的是Android 2.1或多或少的罚款
VI0

即使我强制节电cpufreq调速器,音乐也会发挥相同的作用(在这种情况下,CPU的非正常负载约为20%)。哪些资源可以短缺?
VI0

从您的补充评论中我可以读到:没有。我也从未听说过X10在音频播放方面存在一般性问题。
流动

包括更新至Android 2.3之后?
VI0

Answers:


0

尝试关闭所有占用手机大量资源的应用程序或硬件。关闭GPS,WIFI,网络服务,并调暗背光。除播放音乐所需的应用程序外,还要关闭其他任何正在运行的应用程序。如果仍然无法正常工作,则您的设备可能没有足够的内存。


看起来像是一般性建议,而不是错误的解决方案/变通办法。我尝试了各种模式(有问题的描述)。OOM杀手仅是触发该错误的事物之一。
VI0

0

增加Audio Buffer大小。

我将PlayerPro音乐播放器及其DSP包一起使用。DSP pack使我可以调整音频缓冲区的大小。我从不需要使用此功能,但是它将为您提供帮助。

您也可以找到其他音乐播放器来支持此功能。关键是Audio Buffer

或者,您可以降低音乐质量和系统负载。


至少在Mixzing Player中设置最大缓冲区大小没有帮助。
2012年

1
“降低音乐质量和系统负载”->解决方法,未解决。我已经有了骇人的解决方法(请参阅“更新”)
Vi0 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.