שְׁאֵלָה:
האם יש איזשהו טריק לגרום לפלט שמע aplay לעבוד?
A_toaster
2014-08-12 11:10:34 UTC
view on stackexchange narkive permalink

הקלטתי קובץ .wav באמצעות הפקודה:

  arecord test.wav  

אבל כשאני מנסה להשמיע אותו, אין פלט קול. זה כאילו פטל פטל תקוע על אילם. בתחילה חשבתי שהמיקרופון שלי פגום, אבל שלחתי את קובץ ה- wav לשולחן העבודה והשמעתי אותו, והוא בהחלט לא ריק.

האודיו על פי הפטל שלי עובד כשאני מריץ את hello_audio.bin ממוקם ב / opt / vc / src / hello_pi / hello_audio וזה השמיע רעש דרך האוזניות שלי, אז אני יודע שזו לא האוזניות שלי.

לבדוק את הרמות ב- alsamixer
אחד תשובה:
Drew
2014-08-14 04:40:09 UTC
view on stackexchange narkive permalink

יש כמה סיבות לכך שזה יכול לקרות.

בעיה אפשרית מס '1: שנבחרה יציאת שמע חומרה של RasPi (אוטומטי לעומת HDMI לעומת אוזניות / pwm) )

פתרון: אילוץ בחירה של החומרה הנכונה.

  amixer cset numid = 3 0 # זיהוי אוטומטי (לא תמיד אמין) amixer cset numid = 3 1 # פלט אוזניות כוח (PWM) ערכת cix numid = 3 2 # פלט HDMI כוח  

אני רוצה להכניס אותם ככינויים בקובץ ה .bashrc אז אני לא צריך לזכור את הפקודות:

  alias use-audio-auto = "amixer cset numid = 3 0" # autoalias use-audio-headphones = "amixer cset numid = 3 1 "# headphonesalias use-audio-hdmi =" amixer cset numid = 3 2 "# hdmi  

בעיה אפשרית מס '2: תת מערכת ALSA מוגדרת / מוגדר שגוי .asoundrc

פתרון: ודא ש- ALSA מוגדרת כהלכה עם ברירות מחדל טובות לחומרת RasPi. הקובץ /home/pi/.asoundrc צריך להכיל:

  pcm.mmap0 {type mmap_emul; עבד {pcm "hw: 0,0"; }} pcm.! ברירת מחדל {type hw; כרטיס 0;} ctl.! ברירת מחדל {type hw; כרטיס 0;}  

בעיה אפשרית מס '3: התקן פלט חומרה שגוי שנבחר על ידי aplay

פתרון: בדוק אילו מכשירים זמינים באמצעות aplay -l

הפעל aplay -l לרשימת התקני השמעה שזוהו, אתה אמור לראות משהו כזה שמתייחס ל bcm2835:

  $ aplay -l **** רשימת מכשירי PLAYBACK חומרה **** כרטיס 0: ALSA [bcm2835 ALSA], התקן 0: bcm2835 ALSA [bcm2835 ALSA] תת-התקנים: 8/8 תת-התקן # 0: תת-התקן # 0 תת-מס '1: תת-התקן מס' 1 תת-מכשיר מס '2: תת-התקן מס' 2 תת-התקן מס '3: תת-מכשיר # 3 תת-התקן מס' 4: תת-התקן # 4 תת-התקן מס '5: תת-התקן מס' 5 תת-התקן מס '6: תת-התקן מס' 6 תת-התקן מספר 7: תת-מכשיר # 7 כרטיס 0: ALSA [bcm2835 ALSA], מכשיר 1: bcm2835 ALSA [bcm2835 IEC958 / HDMI] תת-התקנים: 1/1
תת-התקן מס '0: תת-התקן מס' 0  

אם אתה מנסה לבדוק את האוזניות, היית מכריח את השימוש בה באמצעות:

  aplay - Dhw: 0,0 test.wav # 'נסה לשחק test.wav באמצעות כרטיס חומרה 0, תת-התקן 0 (אוזניות)  

ואז, אם ברצונך לשנות את ברירת המחדל עבור הפטל שלך Pi, התאם את הקובץ .asoundrc כדי להשתמש באינדקס כרטיסי החומרה הנכון #.


בעיה אפשרית 4: הצליל שלך פשוט מושתק / נמוך מדי ואתה צריך להגביר את זה.

פתרון: ודא ש- alsa-utils מותקן והפעל alsamixer

  sudo apt-get install -y alsa-utilsalsamixer  

ואז השתמש במקשי F1-F6 ובממשק המשתמש כדי להגביר את עוצמת הקול.

alsamixer

השתמש במקשי החצים כדי להגביר את עוצמת הקול ולצאת.

כדי לשמור את מה ששינית ב alsamixer כברירת מחדל, בצע :

  sudo alsactl store 0  

מקווה שזה עוזר! שלום.

תודה! אין לי מושג איזו התקנה החליטה להשתיק ולהנמיך את עוצמת הקול RetroPie שלי לאורך כל הדרך, אבל לא היה לי מושג לגבי הפקודה הזו כמו mixer! הצלת אותי מלהדמות מחדש את ה- Raspberry Pi: D
@ChrisPrime אין בעיה;)
אני חושב שהפקודה 'aplay' זקוקה ל ':' בתשובה של @Drew's. אני חושב שזה צריך להיות: "aplay -Dhw: 0,0 test.wav #" נסה לשחק test.wav באמצעות כרטיס חומרה 0, תת-התקן 0 (אוזניות) "למעשה אני די בטוח שזה צריך להיות כך. אחרת תשובה נהדרת!
@nomadic_squirrel זה נכון :) שיניתי את התשובה, תודה!


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...