วิธีที่จะทำให้ Android เล่นเพลงได้อย่างน่าเชื่อถือโดยไม่ต้องสับ?


10

เมื่อฉันพยายามเล่นเพลงบน Android 2.3 (โดยใช้ผู้เล่นหลายคนรวมถึง PowerAmp) บน Sony Ericsson Xperia X10 ฉันไม่ได้รับเสียงที่น่าเชื่อถือ เพลงหยุดชั่วคราวในช่วงเวลาสั้น ๆ เช่นเมื่อ:

  • ฉันกดปุ่มเพาเวอร์ (โดยเฉพาะอย่างยิ่งซ้ำ ๆ ) (เป็นrequest_suspend_state: sleep;request_suspend_state: wakeupdmesg)
  • เมื่อฉันเห็นข้อความเช่นsend sigkill to 15497 (ndroid.settings), adj 8, size 6428ใน dmesg
  • เมื่อบางโปรแกรมตอบสนองต่อการวางแนวหน้าจอที่เปลี่ยนไป
  • เมื่อการเชื่อมต่อ wifi ได้รับการจัดตั้งขึ้นเมื่อฉันบังคับให้ "เชื่อมโยงใหม่"
  • เมื่อฉันไปที่ / จากแอปพลิเคชันจากหน้าจอหลัก (AWDLauncher) ยกเว้นไปที่ / จากหน้าจอ WidgetLocker
  • เมื่อฉันเปิด / ปิดโหมดเครื่องบิน
  • เมื่อจอแสดงผลปิด (ที่น่ารำคาญที่สุด)

เมื่อวิธีเล่นเพลงที่เสถียรจริงๆคือใช้ StayAwake เพื่อบังคับให้แสดงผลปิด Wi-Fi เปิดโหมด Airplane และไม่สลับแอปพลิเคชั่น การเริ่ม CPU hogs เช่นwhile true; do true; doneนั้นจะไม่มีผลกับการสับ

และมันก็เล่นได้ดีขึ้นหรือน้อยลงบน 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 ตามปกติและเพลง B ใช้ mplayer to / dev / msm_pcm_out (ผสมให้พวกเขา) เพลง A chops มากกว่าปกติและฉันมักจะได้ยิน B เมื่อ A อยู่ในสับ เมื่อฉันปิดหน้าจอทั้ง A และ B จะซิงค์กัน (การหยุด B นำไปสู่การเล่น A ด้วยวิธีนี้ค่อนข้างคล่องแคล่ว)

วิธีการเล่นเพลงบน Android ที่น่าเชื่อถือเมื่อมีการโหลดพื้นหลัง? ฉันควรรายงานข้อผิดพลาดที่ไหนสักแห่ง?

อัพเดทพบวิธีการเล่นเพลง ไม่สะดวก แต่ไม่มีการสับ :

  1. เริ่ม WakeLock ในโหมด "เปิด CPU, ปิดหน้าจอ, ปิดแป้นพิมพ์"
  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 "powersave" (ทุกอย่างช้ามาก แต่เพลงก็เล่นได้ดี) ดังนั้นฮาร์ดแวร์จึงมีทรัพยากรเพียงพอที่จะเล่น

อัปเดต 2 ดูเหมือนว่ากำลังทำอยู่

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

นั่นคือ "Set Idle priority สำหรับกระบวนการทั้งหมด" ทำให้เพลงเล่นได้ดีแม้เมื่อฉัน {เริ่มโปรแกรมล็อคหน้าจอหมุนหน้าจอมันเชื่อมต่อกับสถานีเครือข่ายมือถืออื่น ๆ } โดยเสียค่าใช้จ่ายบางส่วนของความล่าช้าในเกม ไม่รู้ว่าทำไมมันเกิดขึ้น


คุณมีอุปกรณ์อะไร ดูเหมือนว่ามันเป็นข้อ จำกัด ของทรัพยากร บางที ROM แบบกำหนดเองที่รวดเร็วและเบาอาจปรับปรุงประสิทธิภาพ
Flow

Sony Ericsson Xperia X10 "ทรัพยากร จำกัด " หมายความว่าอย่างไร ควรจัดลำดับความสำคัญของสื่อในกิจกรรมปกติที่อนุญาตให้เล่นอย่างคล่องแคล่วอย่างอิสระเกี่ยวกับปริมาณพื้นหลังที่มีอยู่ การพยายามทำให้เกิดภาระโดยการใช้งานแอพพลิเคชั่นอย่างหนัก hogging CPU และหน่วยความจำไม่ได้นำไปสู่เสียงที่ขาด ๆ หาย ๆ ในขณะที่เพียงแค่เชื่อมโยง Wifi ใหม่จะทำให้เกิดการสับ นอกจากนี้มันยังเล่นได้ดีขึ้นหรือน้อยลงบน Android 2.1
Vi0

เพลงเล่นเหมือนกันแม้ว่าฉันจะบังคับให้ผู้ว่าการประหยัด cpufreq (และ CPU ที่โหลดไม่ได้ดีก็ประมาณ 20% ในกรณีนี้) ทรัพยากรใดที่สามารถทำให้สั้น
Vi0

จากสิ่งที่ฉันสามารถอ่านได้จากความคิดเห็นเพิ่มเติมของคุณ: ไม่มี และฉันยังไม่เคยได้ยินเลยว่า X10 มีปัญหาทั่วไปเกี่ยวกับการเล่นเสียง
Flow

รวมถึงหลังจากอัพเดตเป็น Android 2.3?
Vi0

คำตอบ:


0

ลองปิดแอปพลิเคชันหรือฮาร์ดแวร์ใด ๆ ที่ใช้ทรัพยากรของโทรศัพท์เป็นจำนวนมาก ปิด GPS, WIFI, บริการเครือข่ายและแสงไฟสลัว ปิดแอปพลิเคชั่นอื่น ๆ ที่นอกเหนือจากแอพที่คุณต้องการสำหรับเล่นเพลง หากยังใช้งานไม่ได้อุปกรณ์ของคุณอาจมีหน่วยความจำไม่เพียงพอ


ดูเหมือนว่าคำแนะนำทั่วไปไม่ใช่วิธีแก้ปัญหา / วิธีแก้ปัญหาข้อบกพร่อง ฉันลองใช้โหมดต่างๆ (อธิบายในคำถาม) OOM killer เป็นเพียงสิ่งเดียวที่ทำให้เกิดข้อบกพร่อง
Vi0

0

เพิ่มAudio Bufferขนาดของคุณ

ฉันใช้ PlayerPro Music Player กับชุด DSP ชุด DSP ช่วยให้ฉันสามารถปรับขนาดบัฟเฟอร์เสียง ฉันไม่เคยต้องการใช้คุณสมบัตินี้ แต่มันจะช่วยคุณ

คุณยังสามารถค้นหาเครื่องเล่นเพลงอื่น ๆ เพื่อรองรับคุณสมบัตินี้ Audio Bufferที่สำคัญคือ

อีกทางหนึ่งคุณสามารถลดคุณภาพของเพลงและโหลดระบบ


อย่างน้อยการตั้งค่าขนาดบัฟเฟอร์สูงสุดในเครื่องเล่น Mixzing ไม่ได้ช่วย
Vi0

1
"ลดคุณภาพเพลงรวมถึงโหลดระบบ" -> วิธีแก้ปัญหาไม่แก้ไข ฉันมีวิธีแก้ไขปัญหา
แฮ็ค
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.