자르지 않고 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.