diff --git a/.version b/.version index 617ac97..8837950 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -v5.15.1 +v5.16.0 diff --git a/package.json b/package.json index 41211b8..e8872a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ohzi-core", - "version": "5.15.1", + "version": "5.16.0", "description": "OHZI Core Library", "module": "build/index.module.js", "source": "src/index.js", diff --git a/src/resource_loader/AbstractLoader.js b/src/resource_loader/AbstractLoader.js index d2bcb02..97279b6 100644 --- a/src/resource_loader/AbstractLoader.js +++ b/src/resource_loader/AbstractLoader.js @@ -66,6 +66,7 @@ export default class AbstractLoader async on_progress(resource_container, response) { + const response_clone = response.clone(); const reader = response.body.getReader(); // Step 2: get total length @@ -89,10 +90,10 @@ export default class AbstractLoader // console.log(`Received ${receivedLength} of ${contentLength}`); } - this.on_preloaded_finished(resource_container); + this.on_preloaded_finished(resource_container, response_clone); } - on_preloaded_finished(resource_container) + on_preloaded_finished(resource_container, response) { } diff --git a/src/resource_loader/ResourceBatch.js b/src/resource_loader/ResourceBatch.js index f357ccb..f0bcfd5 100644 --- a/src/resource_loader/ResourceBatch.js +++ b/src/resource_loader/ResourceBatch.js @@ -14,6 +14,7 @@ import GLTFDRACOLoader from './GLTFDRACOLoader'; import BasisLoader from './BasisLoader'; import ResourceContainer from '../ResourceContainer'; import FileLoader from './FileLoader'; +import VideoLoader from './VideoLoader'; export default class ResourceBatch { @@ -73,6 +74,11 @@ export default class ResourceBatch this.resource_loaders.push(new AudioLoader(resource_id, url, loop, volume, size)); } + add_video(resource_id, url, size) + { + this.resource_loaders.push(new VideoLoader(resource_id, url, size)); + } + add_json(resource_id, url, size) { this.resource_loaders.push(new JSONLoader(resource_id, url, size)); diff --git a/src/resource_loader/VideoLoader.js b/src/resource_loader/VideoLoader.js new file mode 100755 index 0000000..543f715 --- /dev/null +++ b/src/resource_loader/VideoLoader.js @@ -0,0 +1,20 @@ +import AbstractLoader from './AbstractLoader'; + +export default class VideoLoader extends AbstractLoader +{ + constructor(resource_id, url, size) + { + super(resource_id, url, size); + } + + on_preloaded_finished(resource_container, response) + { + response.blob().then((blob) => + { + resource_container.set_resource(this.resource_id, this.url, URL.createObjectURL(blob)); + + this.__update_downloaded_bytes(1, 1); + this.__loading_ended(); + }); + } +}