afaden / babelpod

Add line-in and Bluetooth input to the HomePod (or other AirPlay speakers); intended to run on Raspberry Pi.
MIT License
226 stars 36 forks source link

Successful install, but on HomePod "airplay status: stopped" #18

Open puppyspike opened 4 years ago

puppyspike commented 4 years ago

Hi,

I have successfully installed BabelPod on my Raspberry Pi. For this I used the code from @maexdaemaege, because there is no error.

but if I use one of my HomePods as output, I immediately get "airplay status: stopped" no matter which one I select.

If I use the output on USB or Headphone, the music will be played as well.

Do you have an idea how I can fix this?

HomePod Version: 13.4.5 Same network

here the complete log from the terminal, where I changed the in and out and the message comes, that it was stopped.

pi@raspberrypi:~/babelpod $ node index.js
(node:17924) Warning: N-API is an experimental feature and could change at any time.
listening on *:3000
a user connected
switch_input: plughw:1,0
switch_output: airplay_192.168.178.25_7000
inputStream Socket {
  connecting: false,
  _hadError: false,
  _handle: Pipe { owner: [Circular], onread: [Function: onread], reading: false },
  _parent: null,
  _host: null,
  _readableState: 
   ReadableState {
     objectMode: false,
     highWaterMark: 16384,
     buffer: BufferList { head: [Object], tail: [Object], length: 1 },
     length: 22052,
     pipes: 
      ToVoid {
        _writableState: [WritableState],
        writable: true,
        _events: [Object],
        _eventsCount: 5,
        _maxListeners: undefined },
     pipesCount: 1,
     flowing: false,
     ended: false,
     endEmitted: false,
     reading: false,
     sync: false,
     needReadable: false,
     emittedReadable: true,
     readableListening: false,
     resumeScheduled: false,
     destroyed: false,
     defaultEncoding: 'utf8',
     awaitDrain: 1,
     readingMore: false,
     decoder: null,
     encoding: null },
  readable: true,
  _events: 
   { end: [ [Function], [Function] ],
     finish: [Function: onSocketFinish],
     _socketEnd: [Function: onSocketEnd],
     close: [Function],
     data: [Function: ondata] },
  _eventsCount: 5,
  _maxListeners: undefined,
  _writableState: 
   WritableState {
     objectMode: false,
     highWaterMark: 16384,
     finalCalled: false,
     needDrain: false,
     ending: false,
     ended: false,
     finished: false,
     destroyed: false,
     decodeStrings: false,
     defaultEncoding: 'utf8',
     length: 0,
     writing: false,
     corked: 0,
     sync: true,
     bufferProcessing: false,
     onwrite: [Function: bound onwrite],
     writecb: null,
     writelen: 0,
     bufferedRequest: null,
     lastBufferedRequest: null,
     pendingcb: 0,
     prefinished: false,
     errorEmitted: false,
     bufferedRequestCount: 0,
     corkedRequestsFree: 
      { next: null,
        entry: null,
        finish: [Function: bound onCorkedFinish] } },
  writable: false,
  allowHalfOpen: false,
  _bytesDispatched: 0,
  _sockname: null,
  _pendingData: null,
  _pendingEncoding: '',
  server: null,
  _server: null,
  [Symbol(asyncId)]: 161,
  [Symbol(lastWriteQueueSize)]: 0,
  [Symbol(bytesRead)]: 0 }
outputStream ToVoid {
  _writableState: 
   WritableState {
     objectMode: false,
     highWaterMark: 16384,
     finalCalled: false,
     needDrain: true,
     ending: false,
     ended: false,
     finished: false,
     destroyed: false,
     decodeStrings: true,
     defaultEncoding: 'utf8',
     length: 22096,
     writing: true,
     corked: 0,
     sync: false,
     bufferProcessing: false,
     onwrite: [Function: bound onwrite],
     writecb: [Function: nop],
     writelen: 44,
     bufferedRequest: 
      { chunk: <Buffer 01 00 01 00 ff ff ff ff ff ff ff ff 02 00 02 00 00 00 00 00 ff ff ff ff fe ff fe ff ff ff ff ff fe ff fe ff fe ff fe ff 00 00 00 00 00 00 00 00 00 00 ... >,
        encoding: 'buffer',
        isBuf: true,
        callback: [Function: nop],
        next: null },
     lastBufferedRequest: 
      { chunk: <Buffer 01 00 01 00 ff ff ff ff ff ff ff ff 02 00 02 00 00 00 00 00 ff ff ff ff fe ff fe ff ff ff ff ff fe ff fe ff fe ff fe ff 00 00 00 00 00 00 00 00 00 00 ... >,
        encoding: 'buffer',
        isBuf: true,
        callback: [Function: nop],
        next: null },
     pendingcb: 2,
     prefinished: false,
     errorEmitted: false,
     bufferedRequestCount: 1,
     corkedRequestsFree: 
      { next: null,
        entry: null,
        finish: [Function: bound onCorkedFinish] } },
  writable: true,
  _events: 
   { unpipe: [Function: onunpipe],
     drain: [Function],
     error: [Function: onerror],
     close: { [Function: bound onceWrapper] listener: [Function: onclose] },
     finish: { [Function: bound onceWrapper] listener: [Function: onfinish] } },
  _eventsCount: 5,
  _maxListeners: undefined }
adding device: 192.168.178.25:7000
airplay status: stopped
snibles commented 1 year ago

Hi,

I have successfully installed BabelPod on my Raspberry Pi. For this I used the code from @maexdaemaege, because there is no error.

but if I use one of my HomePods as output, I immediately get "airplay status: stopped" no matter which one I select.

If I use the output on USB or Headphone, the music will be played as well.

Do you have an idea how I can fix this?

HomePod Version: 13.4.5 Same network

here the complete log from the terminal, where I changed the in and out and the message comes, that it was stopped.

pi@raspberrypi:~/babelpod $ node index.js
(node:17924) Warning: N-API is an experimental feature and could change at any time.
listening on *:3000
a user connected
switch_input: plughw:1,0
switch_output: airplay_192.168.178.25_7000
inputStream Socket {
  connecting: false,
  _hadError: false,
  _handle: Pipe { owner: [Circular], onread: [Function: onread], reading: false },
  _parent: null,
  _host: null,
  _readableState: 
   ReadableState {
     objectMode: false,
     highWaterMark: 16384,
     buffer: BufferList { head: [Object], tail: [Object], length: 1 },
     length: 22052,
     pipes: 
      ToVoid {
        _writableState: [WritableState],
        writable: true,
        _events: [Object],
        _eventsCount: 5,
        _maxListeners: undefined },
     pipesCount: 1,
     flowing: false,
     ended: false,
     endEmitted: false,
     reading: false,
     sync: false,
     needReadable: false,
     emittedReadable: true,
     readableListening: false,
     resumeScheduled: false,
     destroyed: false,
     defaultEncoding: 'utf8',
     awaitDrain: 1,
     readingMore: false,
     decoder: null,
     encoding: null },
  readable: true,
  _events: 
   { end: [ [Function], [Function] ],
     finish: [Function: onSocketFinish],
     _socketEnd: [Function: onSocketEnd],
     close: [Function],
     data: [Function: ondata] },
  _eventsCount: 5,
  _maxListeners: undefined,
  _writableState: 
   WritableState {
     objectMode: false,
     highWaterMark: 16384,
     finalCalled: false,
     needDrain: false,
     ending: false,
     ended: false,
     finished: false,
     destroyed: false,
     decodeStrings: false,
     defaultEncoding: 'utf8',
     length: 0,
     writing: false,
     corked: 0,
     sync: true,
     bufferProcessing: false,
     onwrite: [Function: bound onwrite],
     writecb: null,
     writelen: 0,
     bufferedRequest: null,
     lastBufferedRequest: null,
     pendingcb: 0,
     prefinished: false,
     errorEmitted: false,
     bufferedRequestCount: 0,
     corkedRequestsFree: 
      { next: null,
        entry: null,
        finish: [Function: bound onCorkedFinish] } },
  writable: false,
  allowHalfOpen: false,
  _bytesDispatched: 0,
  _sockname: null,
  _pendingData: null,
  _pendingEncoding: '',
  server: null,
  _server: null,
  [Symbol(asyncId)]: 161,
  [Symbol(lastWriteQueueSize)]: 0,
  [Symbol(bytesRead)]: 0 }
outputStream ToVoid {
  _writableState: 
   WritableState {
     objectMode: false,
     highWaterMark: 16384,
     finalCalled: false,
     needDrain: true,
     ending: false,
     ended: false,
     finished: false,
     destroyed: false,
     decodeStrings: true,
     defaultEncoding: 'utf8',
     length: 22096,
     writing: true,
     corked: 0,
     sync: false,
     bufferProcessing: false,
     onwrite: [Function: bound onwrite],
     writecb: [Function: nop],
     writelen: 44,
     bufferedRequest: 
      { chunk: <Buffer 01 00 01 00 ff ff ff ff ff ff ff ff 02 00 02 00 00 00 00 00 ff ff ff ff fe ff fe ff ff ff ff ff fe ff fe ff fe ff fe ff 00 00 00 00 00 00 00 00 00 00 ... >,
        encoding: 'buffer',
        isBuf: true,
        callback: [Function: nop],
        next: null },
     lastBufferedRequest: 
      { chunk: <Buffer 01 00 01 00 ff ff ff ff ff ff ff ff 02 00 02 00 00 00 00 00 ff ff ff ff fe ff fe ff ff ff ff ff fe ff fe ff fe ff fe ff 00 00 00 00 00 00 00 00 00 00 ... >,
        encoding: 'buffer',
        isBuf: true,
        callback: [Function: nop],
        next: null },
     pendingcb: 2,
     prefinished: false,
     errorEmitted: false,
     bufferedRequestCount: 1,
     corkedRequestsFree: 
      { next: null,
        entry: null,
        finish: [Function: bound onCorkedFinish] } },
  writable: true,
  _events: 
   { unpipe: [Function: onunpipe],
     drain: [Function],
     error: [Function: onerror],
     close: { [Function: bound onceWrapper] listener: [Function: onclose] },
     finish: { [Function: bound onceWrapper] listener: [Function: onfinish] } },
  _eventsCount: 5,
  _maxListeners: undefined }
adding device: 192.168.178.25:7000
airplay status: stopped

Any update on this issue? Did you found any solution? I have the exact same result. I cannot make Babelpod work. This is so frustrating. Any help?