例如,我們可能想要播放自己預設的mp3檔,
有一個簡單的作法就是在開發時,將想要的檔案放在assets目錄裡,
這個目錄裡的資料,在你開發時,它不會發生任何事,
但當你包裝apk時,裡面的資料會同時包進去,
那麼,安裝完apk後,如何存取它呢?
有些人可能會用"file://android_asset/"來存取它,
不過,建議還是用AssetManager, 使用方式也很簡單,
假設你本來在assets目錄放了一個t.mp3,
AssetManager assetManager = getAssets(); InputStream in = null; OutputStream out = null; File sdCardDir = Environment.getExternalStorageDirectory(); in = assetManager.open("t.mp3"); out = new FileOutputStream(new File(sdCardDir+"/myFolder", "t.mp3")); byte[] buffer = new byte[1024]; int read; while((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } in.close(); in = null; out.flush(); out.close(); out = null;
上面的方式是將assets裡的檔案copy到"/myFolder",
然後我們就可以用FileInputStream等檔案存取的方法來存取它,
當然,還有不同的方式,例如,你想要直接播放它的話:
AssetFileDescriptor fileDescriptor = getAssets().openFd("t.mp3"); MediaPlayer mp = new MediaPlayer(); mp.setDataSource(fileDescriptor.getFileDescriptor());
沒有留言:
張貼留言