2013-04-29 2 views
1

Я пишу веб-приложение, которое живет локально на настольном компьютере и может работать как в Firefox, так и в Chrome. Он использует HTML5 и локальное хранилище базы данных: IndexedDB. Пользователи должны иметь возможность загружать видео из онлайн-хранилища и автоматически добавлять их в приложение. Я не могу использовать ajax для захвата и проверки файлов (поскольку он находится в локальной файловой системе, поэтому он не совпадает с одним и тем же источником), поэтому вместо этого нажмите ссылку, которая открывает удаленные видео на новой вкладке, и предложит сохранить компьютер. На этом этапе мое приложение не знает, где находятся файлы или что они существуют локально (и зависит от того, пользователь сохранит его в правильной папке). У Firefox также нет API-интерфейса FileSystem.Могу ли я хранить видео как blobs в indexedDB?

Поэтому вместо этого я хочу сделать это более простым для пользователя и приложение просто загрузит данные blob через JSONP в 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 из строки, если это то, что у вас есть.

Вместо этого я бы рекомендовал использовать objectURL, так как видео может быть довольно большим, а dataURLs плохо работают на больших файлах.

вы можете создать URL-адрес объекта из блоба, который звучит так, как будто у вас есть. Если нет, вы можете создать blob с array buffer, a binary string, a dataURL или ajax response.

+0

Спасибо! Вы знаете, будет ли objectURL работать как в атрибуте «src» тега 'source', так и в атрибуте« data »тега' object'? –

+0

СЛЕДУЕТ работать в любом месте http-url, за исключением, может быть, действия формы ... – dandavis

+0

Спасибо, я попробую и сообщите, работает ли он. –

Смежные вопросы