จะใช้โทรศัพท์ android 2.1 เป็นตัวรับสัญญาณเสียงจากระยะไกลได้อย่างไร?


21

ฉันมีโทรศัพท์ HTC Hero Android ที่ยังไม่ได้ใช้ (ใช้ Android OS 2.1) ฉันต้องการเชื่อมต่อกับเครื่องขยายเสียงและปล่อยให้มันเชื่อมต่อเป็นเวลาหลายเดือน

มีแอปพลิเคชัน "เสียงระยะไกล" ที่มีอยู่ใน Android Market ที่สามารถรับกระแสจาก / dev / dsp / dev / dsp ถูกปิดการใช้งานโดยไม่ได้ตั้งใจ / ด้วยเหตุผลใดก็ตามใน Ubuntu 10.10 และแม้หลังจากที่ฉันเปิดใช้งานตามเธรดนี้ - หลังจากทำตามคำแนะนำเหล่านี้แล้วก็ไม่ได้ช่วยอะไรเลยดังนั้นเมื่อฉันคลิกปุ่ม Play / Pause บน Android เกิดขึ้นและ mpg123 song.mp3 ยังคงใช้ลำโพงแล็ปท็อปของฉัน สุดท้าย | ส่วนหัวไม่แสดงการล็อกอินของผู้ใช้ใหม่ (ฉันคิดว่ามันควรจะปรากฏที่นี่?)

ค้นหาโดย "pulseaudio" ฉันพบAirbubbleใน Android Market แต่มันบอกว่า "ไม่ทำงานกับ RaopX บน MacOS X และโมดูล raop สำหรับ pulseaudio บน Linux" (ค)

ดังนั้นมีวิธีใช้โทรศัพท์ Android เป็นตัวรับสัญญาณเสียงระยะไกลไม่ จำกัด เฉพาะการเล่น mp3 / เพลง - แต่ระบบย่อยเสียงโดยทั่วไป?

แน่นอนว่าฉันไม่ใช่คนเดียวที่ต้องการถ่ายทอดเสียงไปยังโทรศัพท์ android ผ่าน Wi-Fi เพื่อฟังบนลำโพงที่เหมาะสมใช่ไหม

คำตอบ:


13

ฉันคิดว่าคุณทำงานหนักเกินความคิดพยายามทำให้โทรศัพท์ของคุณทำสิ่งที่มันไม่เคยตั้งใจทำ (เชื่อมต่อกับ PulseAudio หรือบางสิ่งที่ต่ำกว่า) ทำให้คอมพิวเตอร์ของคุณทำงานหนัก

ฉันขอแนะนำให้ไปกับ Icecast ( บทช่วยสอนที่นี่ ) และใช้หนึ่งใน 30 แอพแปลก ๆ สำหรับ Android ที่สามารถสตรีมได้


ขอบคุณ แต่มีแอพพลิเคชั่นอย่างน้อย 2 ตัวในตลาด Android ที่ควรจะแก้ปัญหาของฉันอย่างแน่นอน: "เสียงระยะไกล" และ "AirBubble" (ที่เข้ากันได้กับ Apple Airport Express)
user35834

@ user35834: หลังจากตั้งค่าเซิร์ฟเวอร์ Icecast ทางฝั่ง Ubuntu คุณจะเป็นอิสระในฝั่งผู้รับ สิ่งใด (!) ที่สามารถปรับเป็น "Internet Radio" จะสามารถรับสตรีมของคุณเองได้ มีข้อดีเพิ่มเติมมากมายจาก Icecast เทียบกับ RAOP
Takkat

19

สองวันที่ผ่านมาฉันสะดุดกับคำถามนี้และทำให้ถูกต้องไม่ได้ ในที่สุดฉันก็อ่านในคู่มือ AirBubble ที่ RAOP ไม่ได้รับการสนับสนุน

ในที่สุดฉันก็แก้ไขมันด้วยความสามารถของ DLNA / UPnP ของ pulseaudio มันทำงานได้เหมือนที่คุณคาดหวัง คุณเล่นเสียงด้วยแอพใด ๆ ที่มีเอาต์พุต pulseaudio บนกล่องของคุณและเลือกเอาต์พุตสตรีมมิ่งเมื่อใดก็ตามที่คุณต้องการเปลี่ยนเส้นทางไปยังอุปกรณ์ Android ของคุณ

ก่อนอื่นให้ติดตั้ง Rygel:

$ sudo apt-get install rygel rygel-preferences rygel-gst-launch

จากนั้นแก้ไขไฟล์ /etc/rygel.conf เพื่อให้บรรทัดที่มีพารามิเตอร์เปิดใช้งานการแปลงรหัสเป็นดังนี้:

enable-transcoding=false

จากนั้นโหลดโมดูล DLNA และ TCP และเริ่ม rygel:

$ pactl load-module module-http-protocol-tcp
$ pactl load-module module-rygel-media-server 
$ pactl load-module module-null-sink sink_name=upnp format=s16be channels=2 rate=44100 sink_properties="device.description='DLNA/UPnP Streaming' device.bus='network' device.icon_name='network-server'"
$ rygel

บนอุปกรณ์ Android ของคุณดาวน์โหลดแอพ BubbleUPnP อุปกรณ์เอาต์พุต pulseaudio ของคุณจะแสดงรายการอยู่ใต้เซิร์ฟเวอร์ "Sound on% HOSTNAME%" กำหนดทิศทางเอาต์พุตบนคอมพิวเตอร์ของคุณไปยังอุปกรณ์ DLNA ในการตั้งค่าเสียง เลือกเอาต์พุตเดียวกันใน BubbleUPnP

โปรดทราบว่า BubbleUPnP สตรีมฟรี 30 นาทีแรก เวอร์ชันเต็มคือ 3,49 € แต่ฉันคิดว่ามันคุ้มค่ากับราคา ฉันไม่ได้รับแอพพลิเคชั่นอื่นสำหรับฉัน

สุดท้ายคุณสามารถปิดการใช้งานเบราว์เซอร์สื่อหากคุณไม่ชอบโดยใช้การตั้งค่า rygel:

$ rygel-preferences

อีกหนึ่งหัวขึ้น: นี่เป็นการสตรีมข้อมูลดิบ LPCM โดยตรงซึ่งอยู่ที่ ~ 250 kB / s อย่างต่อเนื่อง กิจกรรม WLAN ปลอมแปลงใด ๆ จะชักนำให้เกิดการพูดติดอ่างถ้าคุณอยู่ในสิ่งใดนอกจากเครือข่าย 802.11 n หากคุณวางแผนที่จะวางรากฐานโซลูชันความบันเทิงของคุณกับการสตรีมแบบไร้สายให้พิจารณาซื้อเราเตอร์แบบไร้สาย

ติดตามการเปลี่ยนแปลง:

เพื่อลดค่าใช้จ่ายของเครือข่ายและการพูดติดอ่าง (ซึ่งจะเกิดขึ้นยกเว้นว่าคุณอยู่ในเครือข่าย 802.11 n) คุณสามารถเปลี่ยนรหัสเสียงเป็น MP3

วางสิ่งนี้ลงใน ~ / .config / rygel.conf

[GstLaunch]
enabled=true
launch-items=mypulseaudiosink
mypulseaudiosink-title=Sound on @HOSTNAME@
mypulseaudiosink-mime=audio/mpeg
mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! lamemp3enc target=quality quality=6

ใช้บริการ "Gst Launch" DLNA ซึ่งจะปรากฏขึ้นเมื่อคุณเริ่ม rygel

ติดตาม 2: FLAC

LAME อาจทำให้เกิดความล่าช้าสูงสุดถึง 2 นาที (!) ในทางกลับกัน FLAC นั้นค่อนข้างเร็วโดยปกติแล้วจะต่ำกว่าหนึ่งวินาที เปลี่ยนบรรทัดในตัวอย่างด้านบนเป็น:

mypulseaudiosink-mime=audio/flac
mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! flacenc quality=8

สิ่งนี้จะลดกระแสข้อมูลไปที่ประมาณ 100 kB / s ทำให้สามารถเล่นได้อย่างราบรื่นบนเครือข่าย 802.11g ส่วนใหญ่ที่มีผู้ใช้หลายคน ฉันทดสอบในขณะที่ดาวน์โหลดฝนตกหนัก ที่ความเร็วเต็มมีการพูดติดอ่างบ้าง แต่เมื่อฉัน จำกัด ความเร็วในการดาวน์โหลดให้ต่ำกว่า 200 kB / s ต่ำกว่าแบนด์วิดท์สูงสุดของฉันมันก็ราบรื่นอีกครั้ง

นอกจากนี้คุณได้ขจัดความสูญเสียคุณภาพ


คู่ของปัญหาด้านบน - ตรวจสอบและแก้ไข~/.config/rygel.confแทน/etc/.config/rygel.confหากไม่ได้โหลดตามค่าเริ่มต้น (?)

การสร้าง sink จะไม่ทำงานใน Ubuntu รุ่นที่ใหม่กว่า

อย่างไรก็ตามสิ่งที่ใช้ได้ผลสำหรับฉันคือทำตามคำแนะนำทั้งหมด จากนั้นเรียกใช้paprefsและบนแท็บ "เซิร์ฟเวอร์เครือข่าย" เลือกตัวเลือกด้านล่าง "กำหนดให้อุปกรณ์เสียงในระบบพร้อมใช้งานเป็นเซิร์ฟเวอร์ uPnP" (และอาจจำเป็นต้องใช้ตัวเลือกย่อยด้วย)

เริ่ม rygel และเลือกตัวเลือก "DLNA / UPnP Streaming" ใหม่ในการตั้งค่า PulseAudio

บน BubbleUPnP เลือก "Gst Launch" เป็น Library ในแอพเลือก Library และตอนนี้ควรจะมีตัวเลือกที่ด้านบนเรียกว่า "เปิดเสียง"


3
สำหรับโปสเตอร์เกี่ยวกับการใช้ rygel: ดูเหมือนว่าเสียง แต่โมดูล -Null-sink ไม่ได้ใช้ข้อโต้แย้งเหล่านั้นในรุ่น 11.10 คุณต้องหมายถึงโมดูลอื่น แต่ฉันยังหาไม่ได้ ความคิดที่ดีโปรดช่วยด้วยการแก้ไข

หลังจากทำงานที่ฉันได้รับข้อผิดพลาดนี้:pactl load-module module-null-sink sink_name=upnp...... Failure: Module initalization failedความคิดใด ๆ
Khurshid Alam

@ KhurshidAlam: ลองใช้วิธีการของฉันโดยไม่มีการแก้ไขข้อความและต้องใช้งานเฉพาะการติดตั้ง Wine ที่ใช้งานได้
Janus Troelsen

@JanusTroelsen: ในขณะที่วิธีการของคุณทำงานได้ฉันจะเน้นว่าวิธีการอื่นจะพยายามก่อน ไวน์เป็นโครงการที่ยอดเยี่ยม แต่ควรใช้เป็นทางเลือกสุดท้ายเท่านั้น มันไม่น่าเชื่อถือ
Toasty

1

Shairplay ไม่รองรับ TCP และ raop_play (ฉันคิดว่า pulseaudio-module-raop เป็นไปตามนี้) ไม่รองรับ UDP ทำไมการแรปเป็น TCP เพียงอย่างเดียวนั้นแปลก UDP จึงดูเหมือนเป็นโปรโตคอลที่ง่ายและเหมาะสมกว่าบนใบหน้าของมัน

และถ้าคุณเป็นแหล่งที่มา flac แล้ว icecast ผ่าน MP3 จะฆ่าคุณภาพรวมทั้งมันเป็นซีพียูหมู MPD นั้นรองรับเอาต์พุต pulseaudio เพื่อให้คุณสามารถ "เปิดและปิด" ห้องต่างๆในบ้านโดยใช้เช่นโทรศัพท์ android ที่มีแอพ mpdroid หากคุณสามารถใช้ท่าเทียบเรือออกอากาศเป็นจุดสิ้นสุดที่คุณมีการตั้งค่าที่ยอดเยี่ยม แต่คุณไม่สามารถ cos raop ไม่สนับสนุนจุดปลาย UDP ที่ง่ายกว่า!


1

คุณอาจต้องการดูภายนอกชุมชน Pulseaudio

ฉันพยายามSubsonicเพื่อทำสิ่งนี้ มันใช้งานได้ดีจนถึงตอนนี้ ฉันได้ติดตั้งบนระบบ Ubuntu ของฉันห้องนั่งเล่นของฉัน Roku บนโทรศัพท์ Android หลักของฉันและบนโทรศัพท์ Android รองของฉันซึ่งเป็น wifi เท่านั้น อุปกรณ์ทั้งหมดเหล่านี้เชื่อมต่อผ่าน wifi ฉันวางแผนที่จะติดตั้งลงในเครื่อง Windows เช่นกันเพื่อให้ภรรยาของฉันสามารถสตรีมคอลเลคชัน iTunes ของเธอไปยังอุปกรณ์อื่น ๆ ได้

ตอนนี้ฉันสามารถสตรีมเสียงและวิดีโอจากระบบ Ubuntu ของฉันไปที่ Roku ของฉันในห้องนั่งเล่นหรือ Android ของฉันซึ่งฉันสามารถนำไปที่ห้องครัวหรือในขณะที่ซักผ้าพับ ฉันยังสามารถสตรีมจากคอมพิวเตอร์เครื่องใดก็ได้ที่มีเว็บเบราว์เซอร์ ฉันสตรีมเพลงและพอดแคสต์ขณะทำงานในโครงการบำรุงรักษาบ้านที่น่าเบื่อ

จนถึงตอนนี้ก็ทำงานได้ดี


0

คุณสามารถใช้ Foobar2000 บนเซิร์ฟเวอร์และBubbleUPnP (เพย์แวร์) บนไคลเอนต์

  1. รับไวน์
  2. ได้รับ foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. ถัดไปถัดไปถัดไป ... :)
  5. รับfoo_upnp
  6. แยกในโฟลเดอร์คอมโพเนนต์ของ foobar2000 (ซึ่งอาจมีอยู่~/.wine/drive_c/Program Files/)
  7. เปิดตัว foobar2000
  8. ไปที่ Library → Configure → Playback → Output → Device แล้วเลือก "Null output"
  9. ตรวจสอบให้แน่ใจufwว่าไม่ได้บล็อกการรับส่งข้อมูลที่เกี่ยวข้อง
  10. ใน BubbleUPnP:
    1. ไปที่อุปกรณ์→ไลบรารีและเลือกเซิร์ฟเวอร์ foobar2000
    2. ใน "Library" เลือก "Playback Stream Capture"

วิธีนี้มีข้อได้เปรียบที่ถ้าคุณหยุดบน Android มันจะสะสมบัฟเฟอร์ (เนื่องจากเซิร์ฟเวอร์ยังคงส่ง)

ทดสอบบน Ubuntu (รุ่นไวน์1.5.28-0ubuntu1~ppa1, foobar2000 รุ่น 1.2.5 และ foo_upnp รุ่น 0.99.46) และ Windows

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