Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -uNr jmonkeyengine-read-only/engine/src/android/com/jme3/audio/android/AndroidAudioRenderer.java jmonkeyengine-modified/engine/src/android/com/jme3/audio/android/AndroidAudioRenderer.java
- --- jmonkeyengine-read-only/engine/src/android/com/jme3/audio/android/AndroidAudioRenderer.java 2013-04-15 23:02:51.101339928 -0700
- +++ jmonkeyengine-modified/engine/src/android/com/jme3/audio/android/AndroidAudioRenderer.java 2013-04-15 23:42:38.873270084 -0700
- @@ -38,11 +38,15 @@
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.media.SoundPool;
- +import com.jme3.asset.AssetInfo;
- import com.jme3.asset.AssetKey;
- import com.jme3.audio.*;
- import com.jme3.audio.AudioSource.Status;
- import com.jme3.math.FastMath;
- import com.jme3.math.Vector3f;
- +import java.io.FileDescriptor;
- +import java.io.FileInputStream;
- +import java.io.InputStream;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.logging.Level;
- @@ -69,12 +73,22 @@
- private Listener listener;
- private boolean audioDisabled = false;
- private final AudioManager manager;
- + private com.jme3.asset.AssetManager jme3AssetManager;
- +
- + class SoundFileInfo{
- + FileDescriptor fd;
- + long startOffset;
- + long length;
- + }
- public AndroidAudioRenderer(Activity context) {
- manager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
- context.setVolumeControlStream(AudioManager.STREAM_MUSIC);
- assetManager = context.getAssets();
- }
- + public void setAssetManager(com.jme3.asset.AssetManager assetManager){
- + jme3AssetManager = assetManager;
- + }
- @Override
- public void initialize() {
- @@ -328,8 +342,10 @@
- try {
- if (audioData.getId() < 0) { // found something to load
- - int soundId = soundPool.load(
- - assetManager.openFd(assetKey.getName()), 1);
- + SoundFileInfo soundInfo = getSoundInfo(assetKey);
- + int soundId = soundPool.load(soundInfo.fd, soundInfo.startOffset, soundInfo.length, 1);
- +// int soundId = soundPool.load(
- +// assetManager.openFd(assetKey.getName()), 1);
- audioData.setId(soundId);
- }
- @@ -376,6 +392,31 @@
- }
- }
- + private SoundFileInfo getSoundInfo(AssetKey<?> key) throws IOException {
- + SoundFileInfo ret = new SoundFileInfo();
- + if(jme3AssetManager != null){
- + AssetInfo aInfo = jme3AssetManager.locateAsset(key);
- + System.out.println(key);
- + if(aInfo != null){
- + System.out.println(aInfo.getClass());
- + InputStream is = aInfo.openStream();
- + if(is instanceof FileInputStream){
- + ret.fd = ((FileInputStream)is).getFD();
- + ret.startOffset = 0;
- + ret.length = is.available();
- + }
- + }
- + }
- + if(ret.fd == null){
- + AssetFileDescriptor afd = assetManager.openFd(key.getName()); // assetKey.getName()
- + ret.fd = afd.getFileDescriptor();
- + ret.startOffset = afd.getStartOffset();
- + ret.length = afd.getLength();
- + }
- +
- + return ret;
- + }
- +
- public void playSource(AudioSource src) {
- if (audioDisabled) {
- return;
- @@ -395,9 +436,14 @@
- mp.reset();
- AssetKey<?> key = audioData.getAssetKey();
- - AssetFileDescriptor afd = assetManager.openFd(key.getName()); // assetKey.getName()
- - mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
- - afd.getLength());
- + // FIXME: Still need to get zip files working.
- + FileDescriptor fd = null;
- + long startOffset = 0;
- + long length = 0;
- +
- + SoundFileInfo soundInfo = getSoundInfo(key);
- +
- + mp.setDataSource(soundInfo.fd, soundInfo.startOffset, soundInfo.length);
- mp.prepare();
- setSourceParams(src, mp);
- src.setChannel(0);
- diff -uNr jmonkeyengine-read-only/engine/src/android/com/jme3/system/android/JmeAndroidSystem.java jmonkeyengine-modified/engine/src/android/com/jme3/system/android/JmeAndroidSystem.java
- --- jmonkeyengine-read-only/engine/src/android/com/jme3/system/android/JmeAndroidSystem.java 2013-04-15 23:02:53.509339858 -0700
- +++ jmonkeyengine-modified/engine/src/android/com/jme3/system/android/JmeAndroidSystem.java 2013-04-15 23:45:25.277265217 -0700
- @@ -29,6 +29,7 @@
- public class JmeAndroidSystem extends JmeSystemDelegate {
- private static Activity activity;
- + private AssetManager assetManager;
- static {
- try {
- @@ -65,13 +66,15 @@
- @Override
- public AssetManager newAssetManager(URL configFile) {
- logger.log(Level.FINE, "Creating asset manager with config {0}", configFile);
- - return new AndroidAssetManager(configFile);
- + assetManager = new AndroidAssetManager(configFile);
- + return assetManager;
- }
- @Override
- public AssetManager newAssetManager() {
- logger.log(Level.FINE, "Creating asset manager with default config");
- - return new AndroidAssetManager(null);
- + assetManager = new AndroidAssetManager(null);
- + return assetManager;
- }
- @Override
- @@ -105,7 +108,9 @@
- @Override
- public AudioRenderer newAudioRenderer(AppSettings settings) {
- - return new AndroidAudioRenderer(activity);
- + AndroidAudioRenderer aar = new AndroidAudioRenderer(activity);
- + aar.setAssetManager(assetManager);
- + return aar;
- }
- @Override
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement