안녕하세요, 정말 하다 머리털 빠질거같아 질문드립니다....
제가 하고싶은건, Url에 매핑된 이미지를 안드로이드 내부로 다운받아서,
그것들을 FFmpeg 라이브러리를 이용해 동영상을 만드는 것인데요,

보시면 프로젝트 패키지? 에선 ../../raw 폴더에 테스팅 이미지가 미리 있고,
어플리케이션으로 run 하면 자동으로 내부 DB에 저장되고
이 이미지들이 동영상으로 변한다고 합니다.
그런데 저 "raw" 부분의 identifier를 변경하면 디렉토리 문제가 나네요.
제가 하고싶은것은 Url에 매핑된 이미지를 안드로이드 내부 DB 중 특정 디렉토리에 다운받고, 그 특정 디렉토리를 FFmpeg 라이브러리를 이용해 동영상을 만드는 것입니다.
Stackoverflow 검색을 통해 별 짓 다 해봤는데 해결이 안되더군요...
1. 지금 한 것보다 나은 생각이 있으시다면 조언 부탁드립니다.
2. 혹시 오류가 뭔지 아시겠다면, 혹 소스가 더 필요하시거나 어떤 정보가 더 필요하시다면 댓글 부탁드립니다.
실시간으로 모니터링 하겠습니다.... 개발자님들 도움 부탁드립니다.
감사합니다.
전체 소스를 붙이는것은 실례인거 같아 일부분을 떼 왔습니다. 확인 부탁드립니다.
for (int i = 0; i <= 10; i++) {
String imgName = String.format("img%05d", i);
// not need // String sdRootPath = "" + Environment.getDataDirectory().getAbsolutePath();
int imgResId = getResources().getIdentifier(imgName, "raw", getPackageName());
// int imgResId = getResources().getIdentifier(imgName,null,null);
mUtility.saveFileToAppInternalStorage(getResources().openRawResource(imgResId), imgName+".bmp");
}
private class HttpReqTask extends AsyncTask<String, String, String> {
@Override
// 쓰레드 주업무를 수행하는 함
protected String doInBackground(String... arg) {
boolean result = false;
if (arg.length == 1)
// 서버에서 전달 받은 데이터를 Bitmap 이미지에 저장
result = loadWebImage(arg[0]);
else {
// 서버에서 다운로드 한 데이터를 파일로 저장
result = downloadFile(arg[0], arg[1]);
if (result) {
// 파일을 로딩해서 Bitmap 객체로 생성
String sdRootPath = "" + Environment.getDataDirectory().getAbsolutePath();
// String filePath = sdRootPath + "/MyActivity/res/raw";
String filePath = sdRootPath + "/data/com.example.MyActivity/res/raw" + arg[1];
// String filePath = sdRootPath;
// mBmp = BitmapFactory.decodeFile(filePath);
File myDir = getDir("testdir", Activity.MODE_PRIVATE);
String myPath = myDir.getAbsolutePath();
mBmp = BitmapFactory.decodeFile(myPath);
}
}
if (result)
return "True";
return "";
}
}
public void showHTML(String html) throws InterruptedException {
int i = 0;
Toast.makeText(getApplicationContext(), html, Toast.LENGTH_LONG).show();
StringTokenizer tmpStr = new StringTokenizer(html, ",");
while (tmpStr.hasMoreElements()) {
UrlString[i] = (String) tmpStr.nextElement();
i++;
}
i = 0;
while (i < 100) {
RealUrlString[i] = UrlString[2 * i] + UrlString[2 * i + 1];
new HttpReqTask().execute(RealUrlString[i], "img0000" + i);
i++;
}
Toast.makeText(getApplicationContext(), RealUrlString[1], Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), RealUrlString[2], Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), RealUrlString[3], Toast.LENGTH_LONG).show();
}
// 홀수 + 짝수 Url을 합쳐야 함.
}