2

In my senario ,i have to used audio file from app internal storge.

In android activity class i copied from phone internal storge to app storage. atlas file,png file working well but audio file not loaded in android version 4.o Althogh its working well in 4.1 and above.

Code is ...

android project have...

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
        cfg.useGL20 = true;
        sourceFile = new File(Environment.getExternalStorageDirectory().toString()+"/data/arv.ogg");
        if(sourceFile.exists())
            Log.i("arv", "file Exist"); 
       destFile = new File(getApplicationContext().getFilesDir().toString()+"/arv.ogg");
        Log.i("arv", "file dest = "+destFile.toString()); 
        try {
            if(sourceFile.exists())
                Log.i("arv", "file status = "+copyFile(sourceFile, destFile));
            else
                Log.i("arv", "file not found");
        } catch (IOException e) {
            Log.i("arv", "Error not found");
            e.printStackTrace();
        }

        initialize(new FrictionScreen(getApplicationContext().getFilesDir().toString()+"/"), cfg);
    }
    private boolean copyFile(File src,File dst)throws IOException{
        if(src.getAbsolutePath().toString().equals(dst.getAbsolutePath().toString())){

            return true;

        }else{
            InputStream is=new FileInputStream(src);
            OutputStream os=new FileOutputStream(dst);
            byte[] buff=new byte[1024];
            int len;
            while((len=is.read(buff))>0){
                os.write(buff,0,len);
            }
            is.close();
            os.close();
        }
        return true;
    }

and java project have....

public FrictionScreen(String _destFilePath){
    filePath=_destFilePath;
}
    @Override
    public void create() {


        camera = new OrthographicCamera(960, 540);
        camera.position.set(960 / 2, 540 / 2, 0);
        camera.update();
        batch = new SpriteBatch();
        music=Gdx.audio.newMusic(Gdx.files.absolute(filePath+"arv.ogg"));
        music.play();
        Gdx.app.log("arv", "libgdx"+Gdx.files.getExternalStoragePath());
    }

Getting exception in android 4.0 (4.1 and above working fine)

FATAL EXCEPTION: GLThread 834
com.badlogic.gdx.utils.GdxRuntimeException: Error loading audio file: /data/data/com.me.frictiongame/files/arv.ogg
at com.badlogic.gdx.backends.android.AndroidAudio.newMusic(AndroidAudio.java:131)
...............
......................
Caused by: java.io.IOException: Prepare failed.: status=0x1
at android.media.MediaPlayer.prepare(Native Method)
at com.badlogic.gdx.backends.android.AndroidAudio.newMusic(AndroidAudio.java:124)
Machavity
  • 30,841
  • 27
  • 92
  • 100
arv
  • 250
  • 3
  • 15

0 Answers0