Code Snippet
// This is for DEMO purposes only, for a more in-depth use of the API make sure to download the Dolby Audio API Package for documentation and sample code
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.dolby.dap.DolbyAudioProcessing;
import com.dolby.dap.OnDolbyAudioProcessingEventListener;
import com.dolby.dap.DolbyAudioProcessing.PROFILE;
public class MainActivity
extends Activity implements MediaPlayer.OnCompletionListener, OnDolbyAudioProcessingEventListener
{
Button btnPlay;
MediaPlayer mPlayer;
DolbyAudioProcessing mDolbyAudioProcessing;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
btnPlay = new Button(this);
btnPlay.setText("Play");
btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mPlayer == null) {
try {
mPlayer = MediaPlayer.create(
MainActivity.this,
R.raw.audio_dolby_living_room);
mPlayer.start();
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
mPlayer.stop();
mPlayer.release();
mPlayer = null;
}
}
});
setContentView(btnPlay);
mDolbyAudioProcessing = DolbyAudioProcessing.getDolbyAudioProcessing(this, DolbyAudioProcessing.PROFILE.GAME, this);
if (mDolbyAudioProcessing == null){
Toast.makeText(this, "Dolby isn't available on this device", Toast.LENGTH_SHORT).show();
finish();
return;
}
}
@Override
public void onDestroy() {
super.onDestroy();
if(mPlayer != null) {
mPlayer.release();
}
this.releaseDolbyAudioProcessing();
}
//OnCompletionListener Methods
@Override
public void onCompletion(MediaPlayer mp) {
mPlayer.release();
mPlayer = null;
}
@Override
public void onDolbyAudioProcessingClientConnected() {
}
@Override
public void onDolbyAudioProcessingClientDisconnected(){
}
@Override
public void onDolbyAudioProcessingProfileSelected(PROFILE arg0){
}
@Override
public void onDolbyAudioProcessingEnabled(boolean arg0) {
// TODO Auto-generated method stub
}
public void releaseDolbyAudioProcessing(){
if (mDolbyAudioProcessing != null) {
mDolbyAudioProcessing.release();
mDolbyAudioProcessing = null;
}
}
}
// Dolby Audio Plug-in for Unity 3D available for download in the frameworks tab.
using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices; //Allows us to use DLLImport
public class DolbyController : MonoBehaviour
{
#if UNITY_ANDROID && !UNITY_EDITOR
[DllImport("DSPlugin")]
public static extern bool isAvailable();
[DllImport("DSJavaPlugin")]
public static extern int initialize();
[DllImport("DSJavaPlugin")]
public static extern int setProfile(int profileid);
[DllImport("DSJavaPlugin")]
public static extern int suspendSession();
[DllImport("DSJavaPlugin")]
public static extern int restartSession();
[DllImport("DSJavaPlugin")]
public static extern void release();
void Start() {
if (isAvailable()) {
InitDolby(10);
}
}
void InitDolby(int limit) {
if (initialize() > -1) {
setProfile(2); /* Set Profile to "Game" */
} else if (limit > 0) {
limit --;
StartCoroutine(Delay(limit));
}
}
IEnumerator Delay(int limit){
// Wait 100ms to make sure Dolby service is enabled
yield return new WaitForSeconds(0.1f);
InitDolby(limit);
}
void OnApplicationPause(bool pauseStatus) {
if (!pauseStatus) return;
suspendSession();
}
void OnApplicationFocus(bool focusStatus) {
if (!focusStatus) return;
restartSession();
}
void OnApplicationQuit() {
release();
}
#endif
}
// Dolby Audio Plug-in for AIR available for download in the frameworks tab.
try{
if (DolbyAudio.isSupported())
{
DolbyAudio.create();
DolbyAudio.audio.setDolbyAudioEnabled(true);
textDebug("Dolby audio enabled.");
} else {
textDebug("Dolby Audio Processing not available on this device.");
}
}catch(e:Error){
textDebug("Error trying dolby audio"+e.toString());
}
// Dolby Audio Plug-in for Cordova available for download in the frameworks tab.
<script type="text/javascript">
var onDeviceReady = function () {
//initialize Dolby Audio Processing
dolby.dap.initialize(dolby.DapProfile.GAME, onSuccess, onFail);
}
function onSuccess() {
}
function onFail(err) {
}
</script>