2. Johan Cloetens
@belgianwaves
• background interest since start
• huge android fan since oct. 2008
• free applications on Android Market:
SipAgent, ShootMe/PicMe, OnAir, ...
• professional android consultant since feb.
2009
• Escaux, Philips, Cherry, ...
Wednesday 7 April 2010
3. VoIP
why should i care?
• isn’t this boring?
• break free / save costs
• market trends
• bringing voice in the network allows
enriched experiences
• Android is the ideal platform
Wednesday 7 April 2010
7. Android (audio)
APPLICATIONS Audio Apps
APP FRAMEWORK AudioTrack / MediaPlayer /
AudioRecord Recorder Class
RUNTIME -> NATIVE JNI
NATIVE LIBRARIES
Media
Library
IPC binding
MediaPlayer Audio Flinger
Service (Native) (Native)
PV OpenCore Player/
Author Engine IPC binding
HAL of Audio
PV Audio Enc/ PV Media
Dec Node In/Out Node
PV MIO
I/F
Alsa user Lib
Android Audio
I/O Wrapper
LINUX KERNEL
Alsa Driver
Wednesday 7 April 2010
8. AudioTrack
AudioTrack t = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
8000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
bufferSizeOut(),
AudioTrack.MODE_STREAM);
t.play();
byte buffer[] = new byte[BUFFER_SIZE];
while (!stopped()) {
int read = fetchIn(buffer);
if (read > 0) {
t.write(buffer, 0, read);
}
}
t.stop();
Wednesday 7 April 2010
9. AudioRecord
AudioRecord r = new AudioRecord(MediaRecorder.AudioSource.MIC,
8000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
bufferSizeIn());
r.startRecording();
byte buffer[] = new byte[BUFFER_SIZE];
while(!stopped()) {
int read = r.read(buffer, 0, BUFFER_SIZE);
if (read > 0) {
pushOut(buffer, read);
}
}
r.stop();
Wednesday 7 April 2010
10. It’s easy ;-)
choices left
• compliancy to protocols (sip & iax)
• codecs (ulaw, alaw, gsm, g729, ...)
• java versus native
• to silo or not to silo...
• gotcha’s
Wednesday 7 April 2010
11. Gotchas
• fragmentation
• room for interpretation api’s
• hardware dependency / buffer hints
• latency
• bugs
• floating point support
Wednesday 7 April 2010
13. To silo or not to silo
that is the question...
• basic functionality easier to integrate
• enriched experience asks for silo
• how to blend experience / look & feel?
• ( what has Google in the pipe? )
Wednesday 7 April 2010
14. Conclusion
• VoIP on Android is a reality
• could be easier
• will improve
• enriched communication experience only
limited by your imagination
• Android is platform of choice, plenty of
options
Wednesday 7 April 2010
15. Feedback
belgianwaves@gmail.com
Wednesday 7 April 2010