Book Image

Mastering Android NDK

Book Image

Mastering Android NDK

Overview of this book

Android NDK is used for multimedia applications that require direct access to system resources. NDK is also the key for portability, which in turn allows a reasonably comfortable development and debugging process using familiar tools such as GCC and Clang toolchains. This is a hands-on guide to extending your game development skills with Android NDK. The book takes you through many clear, step-by-step example applications to help you further explore the features of Android NDK and some popular C++ libraries and boost your productivity by debugging the development process. Through the course of this book, you will learn how to write portable multi-threaded native code, use HTTP networking in C++, play audio files, use OpenGL ES 3, and render high-quality text. Each chapter aims to take you one step closer to building your application. By the end of this book, you will be able to create an engaging, complete gaming application.
Table of Contents (17 chapters)
Mastering Android NDK
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Initialization and playback


We use the OpenAL cross-platform audio library throughout this chapter. In order to make all the examples simple and self-contained, we start with the minimalistic example which can play a sound from an uncompressed .wav file.

Let's briefly describe what we need to do in order to produce sound. The routines of OpenAL manipulate objects encountered in the playback and recording processes. The ALCdevice object represents a unit of audio hardware. Since multiple threads may produce sound at the same time, another object called ALCcontext is introduced. First, an application opens a device and then a context is created and attached to the opened device. Each context maintains a number of Audio Source objects, because even a single application might need to play multiple sounds simultaneously.

We are getting close to actual sound production. One more object is required as a waveform container, which is called a buffer. An audio recording can be quite lengthy, so we don...