私はこの下の方法を使ってディレクトリを作成し、そこにファイルを保存します。
private static File APP_FILE_PATH = new File("/sdcard/SpeechTutor");
p_file_Side_Slow = new File("/sdcard/SpeechTutor/P_SideMovieSlow.mp4");
p_file_Side_Medium = new File("/sdcard/SpeechTutor/P_SideMovieMedium.mp4");
p_file_Side_Fast = new File("/sdcard/SpeechTutor/P_SideMovieFast.mp4");
p_file_Front_Slow = new File("/sdcard/SpeechTutor/P_FrontMovieSlow.mp4");
p_file_Front_Medium = new File("/sdcard/SpeechTutor/P_FrontMovieMedium.mp4");
p_file_Front_Fast = new File("/sdcard/SpeechTutor/P_FrontMovieFast.mp4");
if((!(p_file_Side_Slow.exists())) || (!(p_file_Side_Medium.exists())) || (!(p_file_Side_Fast.exists()))
|| (!(p_file_Front_Slow.exists()))|| (!(p_file_Front_Medium.exists()))||(!(p_file_Front_Fast.exists()))){
ArrayList<String> files = new ArrayList<String>();
files.add("P_SideMovieSlow.mp4");
files.add("P_SideMovieMedium.mp4");
files.add("P_SideMovieFast.mp4");
files.add("P_FrontMovieSlow.mp4");
files.add("P_FrontMovieMedium.mp4");
files.add("P_FrontMovieFast.mp4");
new myAsyncTask().execute(files);
}
// AsyncTass for the Progress Dialog and to do Background Process
private class myAsyncTask extends AsyncTask<ArrayList<String>, Void, Void> {
ArrayList<String> files;
ProgressDialog dialog;
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(MainScreenActivity.this, "Speech Tutor", "Loading...");
}
@Override
protected Void doInBackground(ArrayList<String>... params) {
files = params[0];
for (int i = 0; i < files.size(); i++) {
copyFileFromAssetsToSDCard(files.get(i));
} return null;
}
@Override
protected void onPostExecute(Void result) {
dialog.dismiss();
// myVideoThumbnail.setImageBitmap((Bitmap)ThumbnailUtils.createVideoThumbnail(p_file_Side_Slow.getAbsolutePath(),MediaStore.Video.Thumbnails.MINI_KIND));
// myVideoView.setVideoURI(p_uri_Side_Medium);
setVideoURI(sideShow, frontshow, slowShow, mediumShow, fastShow);
}
}
// Function to copy file from Assets to the SDCard
public void copyFileFromAssetsToSDCard(String fileFromAssets){
AssetManager is = this.getAssets();
InputStream fis;
try {
fis = is.open(fileFromAssets);
FileOutputStream fos;
if (!APP_FILE_PATH.exists()) {
APP_FILE_PATH.mkdirs();
}
fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory()+"/SpeechTutor",fileFromAssets));
byte[] b = new byte[8];
int i;
while ((i = fis.read(b)) != -1) {
fos.write(b, 0, i);
}
fos.flush();
fos.close();
fis.close();
}
catch (IOException e1) {
e1.printStackTrace();
}
}
すべて上記のコードは、ファイルをバックグラウンドプロセスとして保存します。以下は
まだ何の変化について簡単に例ではありません:( – Peter