마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지 동영상 제작 디렉토리 오류 ( Url 매핑 이미지를 특정 디렉토리에 다운받고 그 디렉토리에 있는 이미지들을 동영상화)

0 추천

안녕하세요, 정말 하다 머리털 빠질거같아 질문드립니다....

제가 하고싶은건, 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을 합쳐야 함.
	}

 

드록바터닝슛 (140 포인트) 님이 2015년 10월 18일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...