openairplay / node_airtunes

node.js AirTunes v2 implementation: stream wirelessly to Apple audio devices.
BSD 2-Clause "Simplified" License
273 stars 84 forks source link

Not working with NON-Apple devices here #40

Open halve85 opened 8 years ago

halve85 commented 8 years ago

looks like airtunes is not working with "non-apple" devices :(

I've got a Philips Fidelio Soundring and a Sony SA-NS310 - both Airplay Speakers, that work fine on my iPhone and with the "Whaale-App", but unfortunately they do not work with airtunes :( Only my two AppleTv devices work with airtunes like they should.

Are there any difference in the non-apple products codecs ? They are Apple certified, therefore I thought they should work and should be compliant to the "standard".

halve85 commented 8 years ago

ok some research done: Problem is, that these devices use lower UDP ports then the AppleTV.

= eth0 IPv4 xxxxxx@Philips_Fidelio_Ring AirTunes Remote Audio local hostname = [Philips-Fidelio-Ring.local] address = [10.0.0.114] port = [1024] txt = ["fv=88.1000" "am=JB2 Gen" "vs=103.2" "tp=UDP" "vn=65537" "pw=false" "ss=16" "sr=44100" "da=true" "sv=false" "et=0,4" "cn=0,1" "ch=2" "txtvers=1"]

= eth0 IPv4 xxxxx@Sony_SA-NS310 AirTunes Remote Audio local hostname = [Sony-SA-NS310.local] address = [10.0.0.141] port = [1043] txt = ["fv=s9327.201.216" "am=SA-NS310" "vs=141.9" "vn=65537" "tp=UDP" "ss=16" "sr=44100" "sv=false" "pw=false" "ft=0x44C0A00" "et=0,4" "da=true" "cn=0,1" "ch=2" "txtvers=1"]

noex commented 8 years ago

+1

=   eth0 IPv4 XXXXXXXXXXXX@SA-NS410 14C30C                  AirTunes Remote Audio local
   hostname = [SA-NS410-14C30C.local]
   address = [192.168.6.37]
   port = [1254]
   txt = ["fv=s9327.201.216" "am=SA-NS410" "vs=141.9" "vn=65537" "tp=UDP" "ss=16" "sr=44100" "sv=false" "pw=false" "ft=0x44C0A00" "et=0,4" "da=true" "cn=0,1" "ch=2" "txtvers=1"]
=   eth0 IPv4 XXXXXXXXXXXX@Sony-NS510                       AirTunes Remote Audio local
   hostname = [Sony-NS510.local]
   address = [192.168.6.36]
   port = [1102]
   txt = ["fv=s9327.201.216" "am=SA-NS510" "vs=141.9" "vn=65537" "tp=UDP" "ss=16" "sr=44100" "sv=false" "pw=false" "ft=0x44C0A00" "et=0,4" "da=true" "cn=0,1" "ch=2" "txtvers=1"]
derekatkins commented 4 years ago

I don't even get that far to see any network traffic. I'm trying to play to a shairport-sync device on 192.168.X.Y listening on port 5009, and I don't even see any network packets to the target!

cat ./sample.pcm | node play_stdin.js --host 192.168.X.Y --port 5009
pipe PCM data to play over AirTunes
example: cat sample.pcm | node play_stdin.js --host <AirTunes host>

adding device: 192.168.X.Y:5009
stopping
/usr/lib/node_modules/node-airplayhub/node_modules/airtunes/lib/rtsp.js:385
    this.socket.end(this.makeHead('TEARDOWN', '', di) + '\r\n');
               ^

TypeError: Cannot read property 'end' of null
    at Client.sendNextRequest (/usr/lib/node_modules/node-airplayhub/node_modules/airtunes/lib/rtsp.js:385:16)
    at Client.teardown (/usr/lib/node_modules/node-airplayhub/node_modules/airtunes/lib/rtsp.js:124:8)
    at AirTunesDevice.stop (/usr/lib/node_modules/node-airplayhub/node_modules/airtunes/lib/device_airtunes.js:118:13)
    at async.forEach.devices (/usr/lib/node_modules/node-airplayhub/node_modules/airtunes/lib/devices.js:124:11)
    at /usr/lib/node_modules/node-airplayhub/node_modules/async/dist/async.js:2154:44
    at eachOfArrayLike (/usr/lib/node_modules/node-airplayhub/node_modules/async/dist/async.js:500:13)
    at eachOf (/usr/lib/node_modules/node-airplayhub/node_modules/async/dist/async.js:551:16)
    at awaitable (/usr/lib/node_modules/node-airplayhub/node_modules/async/dist/async.js:208:32)
    at Object.eachLimit (/usr/lib/node_modules/node-airplayhub/node_modules/async/dist/async.js:2216:16)
    at Object.awaitable (/usr/lib/node_modules/node-airplayhub/node_modules/async/dist/async.js:208:32)