Skip to content

warren-bank/Java-AirPlay2-Receiver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fork of the work done by Sergio Fedorini to implement an AirPlay2 Receiver in Java.


Changes:

  • 1.0.5
    • all code is identical to the upstream projects
    • all projects have been combined into a monorepo
    • gradle build scripts have been updated to reference the libraries within the monorepo
    • shell scripts have been added to simplify building and running the server examples
  • 1.0.6 (TBA)
    • implements the initial 3-step pairing handshake

Credits:

  • developer: Sergio Fedorini
    • projects:
      • java-airplay-lib
        • summary:
          • a low-level library written in Java to handle inbound requests from an AirPlay2 client
          • cleverly, it does not implement an actual server
            • left as an exercise for the app that uses the library
            • does not commit the app to any particular HTTP library or framework
        • license: MIT
      • java-airplay-server
        • summary:
          • a higher-level library written in Java that uses java-airplay-lib and Netty
          • implements a minimal HTTP server
          • provides an API for the app that uses the library to easily access the raw data sent by a client
        • license: MIT
      • java-airplay-server-examples
        • summary:
          • a collection of demo apps
            • all of which uses java-airplay-server
          • my personal favorites:
            • vlcj player
              • uses vlcj to provide a bridge between the Java app and VLC
                • VLC must be found on PATH
                • VLC must be the same architecture (ie: 32-bit vs. 64-bit) as the Java runtime used to run the app
            • h264-dump
              • great for debugging
              • produces the following output files:
                • dump.h264
                  • contains all video data received from a client
                • dump.alac
                  • contains all audio data received from a client
                • log
                  • contains all log messages produced by the app during its execution
        • license: MIT
  • developer: Martin
    • projects:
      • AirPlayAuth
        • ownership of repo has since been transferred to: openairplay
        • summary:
          • a low-level library written in Java to implement an AirPlay2 client
        • observations:
          • implements the initial 3-step pairing handshake that java-airplay-lib and java-airplay-server do not
          • being able to inspect the client side of this handshake is very helpful to implement it on the server side
        • license: MIT

Legal: