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
⢠ďŹoating 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