1

В Chrome 32 у меня есть приложение JS, в котором я пишу необработанные изображения с холста в файл, и я хочу закрыть файл и открыть это для обработки в работнике. Я передаю имя файла работнику, и я вижу, что он найден и открыт, но как только я пытаюсь его прочитать, я получаю исключение DOM (NotFoundError).Работник Web: NotFoundError, когда я пытаюсь прочитать файл, созданный в основном потоке

// In my worker: 
fs = self.requestFileSystemSync(self.PERSISTENT, quota); 
var f = fs.root.getFile(rawFileName, {create: false}); // this works, f is valid 
var reader = new FileReaderSync(); 
// At this point, 'reader' looks ok 
rawFramesArrayBuffer = reader.readAsArrayBuffer(f); // My exception is thrown here. 
log("Opened " + rawFileName + " for reading."); 

В моей главной теме, я попытался установить свою File и FileWriter в undefined для обеспечения файл закрыт (я не могу видеть способ сделать это), но это не помогает. В любом случае spec says должен быть выброшен NotReadableError, если файл заблокирован, но я этого не вижу.

Если я пройду через код, все паузы около 5 секунд, когда я перехожу через линию readAsArrayBuffer, а затем вызывается NotFoundError.

Если я создаю DirectoryReader и перечисляю все файлы, я вижу, что мой файл существует.

+0

Я зарегистрировал Chromium ошибка: http://code.google.com/p/chromium/issues/detail ? id = 341210 для этого. – edoloughlin

ответ

0

Мне нужно получить доступ к файлу через FileEntry:

rawFramesArrayBuffer = reader.readAsArrayBuffer(f.file()); 
1

Возможно, вы захотите передать изображения работнику, а не сохранить их и открыть рабочий файл.

Вот страница с примерами кода

http://kinderas.blogspot.com/2011/06/html-5-web-workers-and-image-processing.html

Но это зависит от того, насколько велик ваш образ.

Я нашел это интересным, но не пытался обработать с компьютерной камеры, чтобы он мог помочь вам.

http://blog.aviary.com/posts/live-image-processing-with-getusermedia-and-web-workers

+0

Спасибо, но я сохраняю изображения со скоростью 25 кадров в секунду в течение нескольких минут. Это может быть несколько гигов данных. Я предпочел бы, чтобы он сохранялся на диске, а затем обработал его. – edoloughlin

+0

Вторая ссылка делает видео с камеры, что я нашел впечатляющим. Веб-рабочий может их сохранить, а затем обработать, когда закончите. –

+0

Спасибо. Я посмотрю на него завтра (уже поздно). Приглашаем вас на продвижение, но мне все равно хотелось бы знать, почему я получаю это исключение. – edoloughlin