GNU / Linux ses çıkışımı WI-FI üzerinden Android cihazlara nasıl aktarabilirim?


38

Ses çıkışımı ağ üzerinden (Wi-Fi) Android cihazlara aktarmak istiyorum. Bir müzik / video akışı çözümü aramıyorum, ancak GNU / Linux masaüstümün herhangi bir ses çıkışını bir bluetooth kulaklık gibi Android çalışmamda yayınlardım.

GNU / Linux masaüstüm Debian Wheezy ve ses pulseaudio tarafından sağlanıyor.

Pulseaudio'nın raop modülünü denedim (ve paprefs'te etkinleştirdim) + Android'in AirBuddle uygulaması, ancak ses akışı yok (pulseaudio, AirBuddle'a bağlandı, ancak ses yeniden üretilmedi, bazı yazılımlarda bağlantı hatası var, bazılarında diğer yazılımlar ses sıkışmış).

Yanıtlar:


26

Çok basit bir çözüm var çünkü PulseAudio zaten gerekli tüm araçlara sahip.

  1. Kaynak cihaz adınızı komut ile alın pactl list | grep Name
  2. Aşağıdaki komut dosyasını oluşturun pashare:

    #!/bin/sh
    case "$1" in
      start)
        $0 stop 
        pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2 source=<source_name_here> record=true port=8000
        ;;
      stop)
        pactl unload-module `pactl list | grep tcp -B1 | grep M | sed 's/[^0-9]//g'`
        ;;
      *)
        echo "Usage: $0 start|stop" >&2
        ;;
    esac
    
  3. Bazı kontroller ve hazırlıklar yapın (script çalıştırılmasına izin vermek ve portun başarıyla açılıp açılmadığını kontrol etmek için):

    chmod 755 pashare
    ./pashare start
    netstat -nlt | grep 8000 
    telnet 127.0.0.1 8000
    
  4. İndir ve pulseDroid.apk yükleyin

  5. Telefonunuzda uygulamayı başlatın; IP adresini bilgisayarınıza ve bağlantı noktasını olarak ayarlayın 8000.

PS da kontrol edebilirsiniz bu Wiki sayfasını genel Pulseaudio ağ akışı hakkında bilgi ve için bu Wiki sayfasında RTP akışı hakkında. WiFi üzerinden ham ses akışı çok fazla beklemeyin; muazzam bir bant genişliği çekiciliği alıyor. Güçlü bir sinyale sahip yüksek kaliteli bir kablosuz yönlendirici / AP ile bile, bunun dışında sesin tıngırdatmasından daha fazlasını alamadım. Ham sesinizi MP3 gibi bir şeye dönüştürmek ve bunun yerine yayınlamak için uygun bir medya sunucusu (Pulseaudio ile iyi çalışan Rygel gibi) ayarlamak muhtemelen.


7
Bu, aynı zamanda bu Android Uygulaması ile mükemmel çalışır: Basit Protokol Oynatıcı play.google.com/store/apps/… Ancak, bu değerin varsayılan = 44100 olduğunu unutmayın, dolayısıyla onu kullanmak isteyebilirsiniz.
Jannes,

1
Sadece açıklığa kavuşturmak için: pactl list sources short kaynak parametresinin sayısını bulmak daha iyidir.
wolfmanx

4
kullanma pactl list | grep "Monitor Source"benim için daha alakalı kaynakları gösterir.
markroxor

17

Sen kullanabilirsiniz VLC HTTP üzerinden pulseaudio en çıkışının bir MP3 akışı hizmet etmek.
Başlıca avantajı, uzak cihazınıza herhangi bir özel yazılım yüklemenize gerek olmaması, bir web tarayıcısı (veya müzik çalar) akışı oynatmak için tek ihtiyacınız olan şeydir. Dezavantajı sadece ses, birkaç saniye gecikmeli videolar için işe yaramaz hale

  1. Pulseaudio'nun çıkış adını şununla bul:

    pactl list | grep "Monitor Source" 
    
  2. XXXLC'yi çıkış adınızla değiştirerek VLC http sunucusunu başlatın:

    cvlc -vvv pulse://XXXX --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
    
  3. Gerekirse, yerel IP adresinizi ifconfig

  4. Uzak cihazınızda, tarayıcıyı (veya ses akışı uygulamasını) şuraya yönlendirin:

    http://your.local.ip.address:8888/pc.mp3
    

Not: Tamamen susturmadığınız sürece akış, sunucuda ayarlanan birimden etkilenmez. Gerekirse, yalnızca uzak cihazı duymak için seviyeyi 0'ın hemen üzerinde küçük bir bit tutabilirsiniz.


Polynomial_donut tarafından birleştirilen ilk iki adım :

cvlc -vvv pulse://$(pactl list | grep "Monitor Source" | awk '{print $3}') --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'

1
müthiş! 3 saniyelik bir gecikme var ama o lanet kabloyu bulana kadar bu küçük hack ile mutluyum. Muhtemelen başka bir tane almak zorunda kalacağım ...
Slabo

@ İyi bir noktaya dikkat edin, bazı nedenlerden dolayı, OP'nin sadece müzik yayını yapmak istediğini yanlış olarak kabul ettim. Cevabımı
wils

2
İlk iki satır yerine bir liner: cvlc -vvv pulse://$(pactl list | grep "Monitor Source" | awk '{print $3}') --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
polynomial_donut

Akış doğrudan benim için ses ayarından etkilenir. Sesin dizüstü bilgisayardan çıkmasını durdurmak için kulaklıklarımı taktım.
Rolf

Bu arada, gecikmenin 1/2 saat gibi sürmesini nasıl önleyebilirim?
Rolf

9

Android cihazınıza wifi üzerinden ses çıkışı sağlamak için, Android cihazına PC ve istemci yazılımı üzerinden ses gönderen sunucu yazılımı yüklemeniz gerekir. Mevcut seçenekler

WiFi Ses Kablosuz Hoparlör

WiFi Audio Android Uygulamasını çalıştırın ve Başlat düğmesine basın, Windows / Linux uygulamasını çalıştırdıktan sonra alt kısımda mobil cihazın IP adresini göreceksiniz ve mobil cihazın IP adresini IP adresi alanına koyup ardından PC uygulamasında başlat düğmesine basın. Artık PC'den çıkan tüm sesler mobil cihaza gönderilecek ve mobil cihazdan ses duyacaksınız.
İndir

SoundWire

Kablosuz olarak Android telefon, tablet PC'den herhangi bir müzik veya ses iletimi veya diğer PC'ler
Ana Sayfa Ayrıca bkz

Diğer faydalı linkler
XBMC android SE


SoundWire 1-2 saniye bekler
Gaurav Gupta

@gauravgupta Eğer daha küçük tampon boyutu seçerseniz gecikme olmaz. Ayrıca sıkıştırma kullanmaya çalışın. Bu benim için çok iyi çalıştı.
Raacer

WiFi Audio'nun PC uygulaması indirme bağlantısını buraya koyabilir misiniz?
seyed

WiFi Ses Kablosuz Hoparlör github'dan kaldırıldı ve forumlarda derlenen sürümün kullanıcılar tarafından kötü amaçlı bir yazılım olduğu bildirildi. Dikkatli ol! Soundwire, dağıtıldığı şekilde balık gibi görünüyor.
Genom

0

Soundwire kullanarak ve dizüstü bilgisayarınızdan veya bilgisayarınızdan wifi göndermek isteyenler için, ifconfig kullanarak DOĞRUDAN IP ADRESİNİ KULLANINIZDAN EMİN OLUN. Bu hala bu güne kadar çalışıyor, ancak çoğu Linux dağıtımları wifi göndermek için ikinci bir wifi adaptörüne ihtiyaç duyuyor ve Android'in bağlı olduğu sistemi kullanmak zorundasın. Biri interneti alırken. Biri OUT gönderen.

örn. -> İnternete bağlanmak için "A" wifi adaptörü ve "A" dan wifi göndermek için "B" kullanıyorsanız, Android'de SoundWire'ı "B" NOT "A" ya bağlayın.

Wi-Fi göndermeyen adaptöre bağlanırsanız SoundWire bağlanmayacak veya akmayacaktır, bu nedenle IP adresinizi buna göre Andoroid uygulamanıza / girişlerinize girin, uygun şekilde ifconfig komutunu kullanarak.

Evet gecikme var ama bu uygulama, SoundWire, orada en basit "ip bağlamak ve unutmak" en basit sistemdir. Geçilecek çılgın menüler yok. Ve evet, birden fazla bağlantıyı kabul ediyor. Geçen gün 2 kullandım. Bağlanan cihaz sayısını, iletimi gönderen cihazın ana penceresine ekler.

Kişisel olarak bu gün benim evimde çok odalı / kısa mesafeli bir wifi-radyo sistemi olarak kullanmak.

Keyfini çıkarın.


-4

Vay bu eski.

Neyse, VLC kullanın. Güzel GUI tüm yol boyunca.

  • Masaüstünüzde VLC'yi ateşleyin.
  • Stream'e tıklayın, dosyayı seçin (istediğiniz sayıda dosya ekleyin), stream'e tıklayın.
  • Hepsi doğru ise 'Next'.
  • Yeni Hedef için "http" yi seçin (veya ne kullanmak istiyorsanız). Akışı yayınladığınız makinede oynatmak istiyorsanız Yerel olarak görüntüle'yi seçin. Bir sonraki birkaç diyalogların hepsi açıklayıcıdır.

Android cihazınızda VLC'yi ateşleyin. Arama düğmesinin yanındaki simgeye basın (noktaya işaret eden ok). yazın http://<IP ADDRESS O OF THE MACHINE RUNNING VLC>:8080/benim için olduhttp://xxx.ca:8080/

Test edildi ve çalışıyor. Şimdi, 9'13 Haziran'ın antik zamanında bunu kimse yapabilir mi? Belki, ama VLC'nin günlük kayıtlarını kontrol etmek için çok tembelim;)


3
Müzik / video akışı çözümü aramıyor.
Cristian Ciupitu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.