Android: aircycler Project

Source: Internet
Author: User
Tags jboss

Https://github.com/fgp/AirReceiver

Aircycler

==============
Florian G. Pflug <FGP [at] phlo.org>
May 1, 2011

Overview
--------
Aircycler is an Airport Express emulator, I. e. It allows streaming audio
From iTunes and iOS devices to a computer running air0000er. It does so
Implementing a raop/airtunes2 server.

Features
--------
Aircycler is compatible with iTunes and iPhones/iPods. It implements not
Only raw audio streaming but also the timing-related parts of raop/airtunes2.

Raop/airtunes requires that the device (the computer running air0000er)
Adapts itself to the rate at which iTunes or IOS streams the sound. aircycler
Currently does that simply by repeating samples (in case iTunes/IOS sends
Slightly slower than your sound card emits the signal) or dropping Samples
(In case iTunes/IOS sends slightly faster). This can lead to audible clicks
In audio output every few seconds or every few minutes, depending in how
Large the clock drift between the two devices is.

Aircycler will hopefully eventually gain the ability to deal with drifting
Clocks more gracefully by dynamically resampling the audio stream, but it
Isn' t there yet.

Working Platforms
-----------------
In principle, any platform for which Java 1.6 Standard Edition compatible
VM is available shocould work. aircycler contains no native (non-Java) code.

Aircycler has been confirmed to work on Mac OS X 10.6 i386 with the 64-bit
VM and on Windows XP with the 32bit VM.

Reports of experiences with air0000er on other platforms are highly
Appreciated!

Usage
------
If you're on Mac OS X, download the AirReceiver-app.zip from the bin/folder
(Or use the large Download button), unzip it, and launch it.

If you're on Windows or Linux, download the aircycler. one-jar.jar and
Double-click it (or type Java-jar aircycler. one-jar.jar on the command
Line ).

Either way, give it about half a minute to announce itself on the network,
Then choose it as output device on your iOS device or in iTunes.

ITunes adds an icon in the bottom right corner once it has detected
Compatible device, IOS shows the icon next to the previous, pause, next
Buttons.

Installation
------------
No installation is required, simply download the appropriate package
(Either the app or the jar) for your platform and launch it.

License
-------
Aircycler is free software: You can redistribute it and/or modify
It under the terms of the GNU General Public License as published
The Free Software Foundation, either version 3 of the license, or
(At Your option) any later version.

Aircycler is distributed in the hope that it will be useful,
But without any warranty; without even the implied warranty
Merchantability or fitness for a particle purpose. See
GNU General Public License for more details.

You shoshould have your ed a copy of the GNU General Public License
Along with air0000er. If not, see

Aircycler contains code written by soiaf, check the file license.txt
In src/main/Java/COM/beatofthedrum/alacdecoder

References & acknowledgements
-----------------------------
* Shairport written by James Laird
Http://mafipulation.org/blagoblig/reversing, https://github.com/albertz/shairport
Airreceiver wouldn't haven been possible to write without the work James Laird
Put into reverse-engineering the protocol and encryption.

* ALAC decoder written David Hammerton and ported to Java by soiaf
Https://github.com/soiaf/Java-Apple-Lossless-decoder
 
* Java mdns-zeroconf (Bonjour (TM) in Apple terms) Implementation for Java
Http://jmdns.sourceforge.net/
Provides aircycler with the ability to announce it's service on
Local Network without having to resort to platform-specific code
Like Apple's bonjour Java bindings (which aren't available on Linux
Anyway)
 
* Netty by the JBoss community
Http://www.jboss.org/netty
Netty makes writing network server in Java pure joy. Writing the RTSP Server
Component was a breeze with netty's built-in support for HTTP and RTSP.

* Bouncycastle Java Cryptography provider
Http://www.bouncycastle.org/
Bouncycastle included all of the RSA and AES variants used by raop/airtunes2

* Base64 encoder/Decoder by iharder
Http://iharder.sourceforge.net/current/java/base64/
Iharder's base64 decode saved me a few hours it 'd otherwise probably have spent
Writing and debugging an base64 encoder/decoder myself.

* Maven
Http://maven.apache.org/
Hassystemic-free dependency management. And a helluva lot of plugins, usually
Just a few Google searches away.

* Onejar packaging plugin for Maven
Http://one-jar.sourceforge.net/
Provides the double-clickable. Jar files, and all that's required was adding
A few lines to air0000er's. POM

* Mac OS X application packaging plugin for Maven
Http://mojo.codehaus.org/osxappbundle-maven-plugin/
Add a few lines to your. POM and, there, you 've built a Mac OS X Application
Bundle from your Java application. Cool!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.