자르지 않고 Android에서 음악을 안정적으로 재생하는 방법은 무엇입니까?


10

Sony Ericsson Xperia X10에서 Android 2.3 (PowerAmp를 포함한 다양한 플레이어 사용)에서 음악을 재생하려고 할 때 신뢰할 수없는 사운드를 얻습니다. 예를 들어 다음과 같은 경우 음악이 잠시 일시 중지됩니다.

  • 전원 버튼을 누릅니다 (특히 반복적으로) ( request_suspend_state: sleep;request_suspend_state: wakeupdmesg에서)
  • send sigkill to 15497 (ndroid.settings), adj 8, size 6428dmesg 와 같은 메시지를 볼 때
  • 일부 프로그램이 변경된 화면 방향에 반응 할 때.
  • 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에서 안정적으로 음악을 재생하는 방법은 무엇입니까? 어딘가에 버그를 신고해야합니까?

업데이트 음악 재생 방법을 찾았습니다. 불편하지만 자르지 않음 :

  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)

내가 시작한 응용 프로그램의 양, Wi-Fi, 방향 및 비행기 모드로 수행하는 작업에 관계없이 자르지 않고 재생합니다. "powersave"cpufreq 주지사 (매우 느리지 만 음악은 잘 재생 됨)에서도 마찬가지입니다. 따라서 하드웨어에는 충분한 리소스가 있습니다.

업데이트 2하는 것처럼 보입니다.

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

즉, "모든 프로세스에 대해 유휴 우선 순위 설정"은 게임에서 일부 입력 지연을 희생하면서 {프로그램 시작, 화면 잠금, 화면 회전; 다른 모바일 네트워크 스테이션에 다시 연결} 할 때에도 음악을 잘 재생합니다. 왜 그런지 정확히 알지 마십시오.


어떤 장치가 있습니까? 리소스가 매우 제한적인 것 같습니다. 빠르고 가벼운 맞춤형 ROM이 성능을 향상시킬 수 있습니다.
Flow

소니 에릭슨 엑스 페리아 X10. "자원 제한"이란 무엇입니까? 일반적인 작업보다 미디어를 우선 순위로 지정하여 백그라운드로드의 양에 독립적으로 유창하게 재생할 수 있습니다. 또한 단지 와이파이가 reassociating 동안 고르지 오디오로 연결되지 않는 CPU와 메모리를 소모하는 명시 적으로 사용하여 무거운 응용 프로그램에서 원인로드하려고 항상 고기를 생산하고 있습니다. 또한 그것은 안드로이드 2.1에서 다소 훌륭하게 연주되었습니다
Vi0

음악은 내가 cpufreq 총재를 강제로 저장하더라도 동일하게 재생됩니다 (이 경우 CPU 비 부하 부하는 약 20 %입니다). 어떤 자원이 부족할 수 있습니까?
Vi0

추가 의견에서 읽을 수있는 내용 : 없음. 또한 X10에 오디오 재생에 일반적인 문제가 있다고 들었습니다.
Flow

Android 2.3으로 업데이트 한 후 포함합니까?
Vi0

답변:


0

많은 전화 리소스를 사용하는 응용 프로그램이나 하드웨어를 끄십시오. GPS, WIFI, 네트워크 서비스를 끄고 백라이트를 어둡게합니다. 또한 음악을 재생하는 데 필요한 것 이외의 실행중인 응용 프로그램을 모두 종료하십시오. 그래도 작동하지 않으면 장치의 메모리가 부족할 수 있습니다.


버그에 대한 해결책 / 해결 방법이 아닌 일반적인 조언처럼 보입니다. 다양한 모드를 시도했습니다 (문제 설명). OOM 킬러는 버그를 유발하는 것 중 하나 일뿐입니다.
Vi0

0

Audio Buffer크기를 늘리십시오 .

PlayerPro 뮤직 플레이어를 DSP 팩과 함께 사용합니다. DSP 팩을 사용하면 오디오 버퍼 크기를 조정할 수 있습니다. 이 기능을 사용할 필요는 없었지만 도움이 될 것입니다.

이 기능을 지원하는 다른 음악 플레이어를 찾을 수도 있습니다. 열쇠는 Audio Buffer입니다.

또는 시스템로드 및 음악 품질을 줄일 수 있습니다.


Mixzing 플레이어에서 최소한 최대 버퍼 크기를 설정해도 도움이되지 않습니다.
Vi0

1
"음악 품질 및 시스템로드를 줄이십시오"-> 해결 방법, 수정하지 마십시오. 이미 해킹 된 해결 방법이 있습니다 ( "업데이트"참조)
Vi0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.