루프에서 비디오 파일을 재생하는 응용 프로그램에서 작업하고 있습니다. 지금까지 장치를 마운트하고 비디오 파일을 SD 카드에 복사 한 다음 파일 경로를 사용하여 VideoView에서 시작했습니다. 나는 내가 비디오를 온라인으로 저장하도록 이동 한 비디오를 원격으로 업데이트 할 수있는 방법을 구현하려고 노력 중이다. 응용 프로그램 내에서 로컬 복사본을 확인하고 존재하지 않거나 새로운 것이 있으면 다운로드합니다. 두 가지 다른 비디오 파일 인 .mp4s에서 테스트했습니다. 하나를 다운로드 한 후 처음으로 재생되지만 루프를 다시 시작하려고하면 비디오를 재생할 수 없다고 알려줍니다. 다른 하나는 처음 플레이도하지 않을 것입니다. 단지 비디오를 재생할 수 없다는 대화 상자를 보여줍니다. 이 두 파일은 USB 케이블을 통해 SD 카드에 복사하면 내 응용 프로그램에서 제대로 작동합니다. 앱을 종료하고 다른 항목 (드롭 박스)을 사용하여 수동으로 다운로드하지만 내 앱에서 다운로드 한 경우에는 작동하지 않습니다.안드로이드 mp4 비디오가 온라인에서 다운로드 될 때 손상되었습니다.
public static void DownloadFromUrl(String fileName) { //this is the downloader method
try {
URL url = new URL("http://dl.dropbox.com/u/myfile.mp4");
File file = new File(PATH + fileName);
long startTime = System.currentTimeMillis();
Log.d(myTag, "download begining");
Log.d(myTag, "download url:" + url);
Log.d(myTag, "downloaded file name:" + fileName);
/* Open a connection to that URL. */
URLConnection ucon = url.openConnection();
Log.i(myTag, "Opened Connection");
/*
* Define InputStreams to read from the URLConnection.
*/
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
Log.i(myTag, "Got InputStream and BufferedInputStream");
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
Log.i(myTag, "Got FileOutputStream and BufferedOutputStream");
/*
* Read bytes to the Buffer until there is nothing more to read(-1).
*/
int current = 0;
Log.i(myTag, "About to write");
while ((current = bis.read()) != -1) {
bos.write(current);
}
fos.close();
Log.d(myTag, "download ready in"
+ ((System.currentTimeMillis() - startTime))
+ " sec");
} catch (IOException e) {
Log.d(myTag, "Error: " + e);
}
}
나는이 조각의 보관 용 URL을 알고 내가 URL이 올바르게 파일을 가리키는 내 응용 프로그램에서, 단지이 게시물에 대한 그것을 변경되지 올바른지 : 저는 여기에 파일을 다운로드하기 위해 사용하고있는 코드입니다. 그리고 파일을 만들 때 사용 된 변수 PATH는이 스 니펫 외부의 코드에서 설정됩니다.
내 mp4 파일이 손상 될 수있는이 코드 스 니펫에 대해 뭔가가 있습니까?
방법을 사용하여 비디오를 SD 카드로 다운로드 한 다음 USB 케이블을 사용하여 SD 카드에서 파일을 꺼내보십시오. 해당 파일이 재생되는지 확인하십시오. –
내 컴퓨터에서 .mp4를 재생할 플레이어가 없습니다. 필자는 파일 속성을 살펴 봤지만 내 방법이 다운로드하는 파일은 몇 바이트 더 작아야한다고 생각합니다. – FoamyGuy