PalActivity.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.sdlpal.sdlpal;
  2. import org.libsdl.app.SDLActivity;
  3. import android.content.Intent;
  4. import android.os.*;
  5. import android.util.*;
  6. import android.media.*;
  7. import android.net.Uri;
  8. import java.io.*;
  9. public class PalActivity extends SDLActivity {
  10. static {
  11. System.loadLibrary("SDL2");
  12. System.loadLibrary("main");
  13. }
  14. private static final String TAG = "sdlpal-debug";
  15. private static MediaPlayer mediaPlayer;
  16. public static native void setScreenSize(int width, int height);
  17. public static boolean crashed = false;
  18. private static MediaPlayer JNI_mediaplayer_load(String filename){
  19. Log.v(TAG, "loading midi:" + filename);
  20. if (mediaPlayer == null) {
  21. mediaPlayer = new MediaPlayer();
  22. }
  23. mediaPlayer.reset();
  24. try {
  25. mediaPlayer.setDataSource(mSingleton.getApplicationContext(), Uri.fromFile(new File(filename)));
  26. mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  27. mediaPlayer.prepare();
  28. } catch(IOException e) {
  29. Log.e(TAG, filename + " not available for playing, check");
  30. }
  31. return mediaPlayer;
  32. }
  33. @Override
  34. public void onCreate(Bundle savedInstanceState) {
  35. super.onCreate(savedInstanceState);
  36. DisplayMetrics metrics = new DisplayMetrics();
  37. getWindowManager().getDefaultDisplay().getMetrics(metrics);
  38. setScreenSize(metrics.widthPixels, metrics.heightPixels);
  39. }
  40. @Override
  41. public void onDestroy() {
  42. super.onDestroy();
  43. }
  44. @Override
  45. protected void onPause() {
  46. if (!this.isFinishing() && mediaPlayer != null) {
  47. mediaPlayer.pause();
  48. }
  49. super.onPause();
  50. }
  51. @Override
  52. protected void onResume() {
  53. if (mediaPlayer != null) {
  54. mediaPlayer.start();
  55. }
  56. super.onResume();
  57. }
  58. }