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 와 같은 메시지를 볼 때- 일부 프로그램이 변경된 화면 방향에 반응 할 때.
- Wi-Fi 연결이 설정되면 "재 연결"하도록 강제 설정하면
- WidgetLocker 화면을 제외하고 홈 화면 (AWDLauncher)에서 응용 프로그램으로 이동하거나 응용 프로그램으로 이동하는 경우
- 비행기 모드를 활성화 / 비활성화 할 때
- 디스플레이가 꺼져있을 때 (가장 성가신)
음악을 재생하는 안정적인 방법은 StayAwake를 사용하여 강제로 디스플레이를 켜고 Wi-Fi를 끄고 비행기 모드를 켜고 응용 프로그램을 전환하지 않는 것입니다. CPU 호그 시작 while true; do true; done
은 자르기에 영향을 미치지 않습니다.
그리고 그것은 안드로이드 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에서 안정적으로 음악을 재생하는 방법은 무엇입니까? 어딘가에 버그를 신고해야합니까?
업데이트 음악 재생 방법을 찾았습니다. 불편하지만 자르지 않음 :
- "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)
내가 시작한 응용 프로그램의 양, Wi-Fi, 방향 및 비행기 모드로 수행하는 작업에 관계없이 자르지 않고 재생합니다. "powersave"cpufreq 주지사 (매우 느리지 만 음악은 잘 재생 됨)에서도 마찬가지입니다. 따라서 하드웨어에는 충분한 리소스가 있습니다.
업데이트 2하는 것처럼 보입니다.
for i in `pgrep ''`; do schedtool -D $i; done
즉, "모든 프로세스에 대해 유휴 우선 순위 설정"은 게임에서 일부 입력 지연을 희생하면서 {프로그램 시작, 화면 잠금, 화면 회전; 다른 모바일 네트워크 스테이션에 다시 연결} 할 때에도 음악을 잘 재생합니다. 왜 그런지 정확히 알지 마십시오.