2013-04-29 2 views
1

저는 데스크톱 컴퓨터에 로컬로 존재하며 Firefox 또는 Chrome에서 실행할 수있는 웹 앱을 작성하고 있습니다. HTML5와 로컬 데이터베이스 저장소 인 IndexedDB을 사용합니다. 사용자는 온라인 저장소에서 비디오를 다운로드하여 자동으로 응용 프로그램에 추가 할 수 있어야합니다. 아약스를 사용하여 파일을 가져 와서 확인하지 못합니다 (로컬 파일 시스템에 있기 때문에 동일한 원본에서 실패합니다). 대신 원격 호스트 된 비디오를 새 탭에서 열고 저장하라는 메시지를 표시하는 링크를 클릭합니다. 컴퓨터. 이 시점에서 내 앱은 파일이 어디에 있는지, 또는 파일이 로컬에 있는지 (사용자가 올바른 폴더에 저장했는지 여부에 따라) 알지 못합니다. Firefox에는 FileSystem API도 없습니다.비디오를 blob으로 indexedDB에 저장할 수 있습니까?

대신 사용자에게 더 매끄럽게 만들고 JSONP를 통해 blob 데이터를 indexedDB로 다운로드하도록하고 싶습니다. 하지만 videosource 또는 object 플래시 태그를 통해 표시 할 수 있어야합니다. 이것이 가능한가? 해당 태그의 소스/데이터를 실제 데이터가 아닌 URL로 설정할 수 있습니까? 그래서 같은 :

의사 코드

<video><source src="data:video/mp4;base64,iVBORw0..."/></video> 
<video><object data="data:video/flv;base64,iVBORw0..."/></video> 

이 같은 일이 있나요?

답변

1

예, 동영상을보기 위해 표시하는 것처럼 dataURL을 사용할 수 있습니다. 특정 형식의 특정 브라우저 및 다른 스레드가 가능하지만 가능합니다. 데이터 URL 형식은 기본적으로 "data :"+ mimeType + [base64 flag?] + ","+ btoa (data) 형식입니다. 문자열을 사용하여 dataURL을 쉽게 만들 수 있습니다.

동영상이 상당히 클 수 있으며 큰 파일에서 dataURL이 제대로 수행되지 않으므로 objectURL을 사용하는 것이 좋습니다.

당신은 당신이 가진 것처럼 들리는 얼룩으로부터 객체 URL을 생성 할 수 있습니다. 이 아닌 경우 array buffer, binary string, dataURL 또는 ajax response에서 얼룩을 만들 수 있습니다.

+0

고마워요! objectURL이'source' 태그의 "src"속성과'object' 태그의 "data"속성에서 모두 작동하는지 알고 있습니까? –

+0

어쩌면 양식 작업을 제외하고 어디서나 http url이 작동해야합니다. – dandavis

+0

감사합니다. 시험해보고 작동하는지보고하겠습니다. –

관련 문제