@galacean/effects-plugin-multimedia 2.9.0-alpha.2 → 2.9.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +525 -174
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +526 -175
- package/dist/index.mjs.map +1 -1
- package/dist/video/video-component.d.ts +175 -31
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_function.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_native_super.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_assert_this_initialized.js","../src/constants.ts","../src/utils.ts","../src/video/video-loader.ts","../src/audio/audio-loader.ts","../src/video/video-component.ts","../src/audio/audio-player.ts","../src/audio/audio-component.ts","../src/index.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","function _is_native_reflect_construct() {\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\n\nexport { _is_native_reflect_construct as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","function _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n\n return _get_prototype_of(o);\n}\nexport { _get_prototype_of as _ };\n","function _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nexport { _is_native_function as _ };\n","import { _ as _construct } from \"./_construct.js\";\nimport { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_function } from \"./_is_native_function.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") throw new TypeError(\"Super expression must either be null or a function\");\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n\n return _set_prototype_of(Wrapper, Class);\n };\n\n return _wrap_native_super(Class);\n}\nexport { _wrap_native_super as _ };\n","function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function _assert_this_initialized(self) {\n if (self === void 0) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\n return self;\n}\nexport { _assert_this_initialized as _ };\n","export const multimediaErrorMessageMap: Record<number, string> = {\n 2000: 'Autoplay permission for audio and video is not enabled',\n};\nexport const multimediaErrorDisplayMessageMap = {\n 2000: '音视频自动播放权限未开启',\n};\n","import type { SceneLoadOptions } from '@galacean/effects';\nimport { loadBinary, loadVideo, spec, passRenderLevel, isFunction } from '@galacean/effects';\nimport { multimediaErrorMessageMap } from './constants';\n\n/**\n * 处理多媒体资源加载\n * @param media - 多媒体资源数组\n * @param type - 多媒体类型(视频或音频)\n * @param options - 场景加载选项\n * @returns 加载完成的多媒体资源数组\n */\nexport async function processMultimedia<T> (\n media: spec.AssetBase[],\n type: spec.MultimediaType,\n options: SceneLoadOptions,\n): Promise<T[]> {\n const { renderLevel } = options;\n const jobs = media.map(medium => {\n if (passRenderLevel(medium.renderLevel, renderLevel)) {\n if (type === spec.MultimediaType.video) {\n const videoURL = getVideoUrl(medium, options);\n const url = new URL(videoURL, location.href).href;\n\n return loadVideo(url);\n } else if (type === spec.MultimediaType.audio) {\n const url = new URL(medium.url, location.href).href;\n\n return loadAudio(url);\n }\n }\n\n throw new Error(`Invalid ${type} source: ${JSON.stringify(media)}.`);\n });\n\n return Promise.all(jobs) as Promise<T[]>;\n}\n\n/**\n * 判断音视频浏览器是否允许播放\n * @throws {MultimediaError} 当浏览器不允许自动播放时抛出错误\n */\nexport async function checkAutoplayPermission () {\n const audio = document.createElement('audio');\n\n // src 为长度为 0.1s 的音频片段\n audio.src = 'data:audio/mpeg;base64,//uQxAACFCEW8uewc8Nfu50FhJuQAGAFJCAhaIHoMhfEnBzixrwNsCGGGmyeCECGGRKWwnB0MkzGh6Hn7JLEstwCADQsJwBAAAOOhOAGAcd0gJgTBuW7HBgJBgfvEgCAEBEiOyeTDxyiyjZLEsRDyEzMz+921nJyWJZn6w8P1769e/AYCQI6tIJAkGHL16zpxhY5VeYGCdd3/93d9w4tygIO/4IHBOD8Hz/4f+IDkEHU4n8PqBMMBCQ0iXWYFnCIGqooaZHfRqOrgxuOtjmpCJCaYjmQqDz3NJUBTFWK4soYEoCumIJzIBldNhLUmAaDzhggZmSAkr9SqAIjGJFGEMCQlIPKDMuo24qZIrKDONHWGqlZbOymMy2yhCoBQywFQAgBEsETW0hCoIkqQWBINPWa3rCoEg1MiBIEiZMUiklyMfKVqoUOxIkSMtVTMzOMSBiKJQMAiWyROrf/5mq//8mkknNBQlFjiJFHKqqr//1VV6qq3vNVVbJpFHXkijM+pIoy1VX7zPOJEkmJAJaYgpqKBgASEAAIAAAAAAAAAAAA//uSxAAD1p0iZiw9OIgAADSAAAAEYAwFApgokRqIFjigukAADJhFjIUGoGFlRAycQGC5QsJJRWdRZRVWZVNYBStcjsRuaiMSgmOQOvVAKBSBY4ygsJGDCEoUEWrE3NBfUyJSSTTiPMpDUUvrhTsC7XR/G6bx2nse52G+cjBDhQW5tan7IZREJY6ULlDpCIhCIhkPDYgFaN2//3JZVZVY6UXQO2NXV1u//P/KSqyqSai7GFdu0DEqoheCVpA1v///6qqaaaYRKqIGKpiCmooGABIQAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==';\n audio.muted = true;\n audio.crossOrigin = 'anonymous';\n\n try {\n await audio.play();\n } catch (_) {\n throw new MultimediaError(2000, multimediaErrorMessageMap[2000]);\n }\n}\n\n/**\n * 异步加载一个音频文件\n * @param url - 音频文件的 URL\n * @returns 返回 AudioBuffer(如果支持 AudioContext)或 HTMLAudioElement\n * @throws {Error} 当音频加载失败时抛出错误\n */\nexport async function loadAudio (url: string): Promise<HTMLAudioElement | AudioBuffer> {\n const isSupportAudioContext = !!window['AudioContext'];\n\n if (isSupportAudioContext) {\n try {\n const audioContext = new AudioContext();\n const buffer = await loadBinary(url);\n const decodedData = await audioContext.decodeAudioData(buffer);\n\n return decodedData;\n } catch (_) {\n throw new Error(`Failed to load audio from ${url}.`);\n }\n }\n\n return new Promise((resolve, reject) => {\n const audio = new Audio();\n\n // 设置音频源\n if (typeof url === 'string') {\n audio.src = url;\n } else {\n audio.srcObject = url;\n }\n\n audio.muted = false;\n\n // 监听加载事件\n audio.addEventListener('canplaythrough', () => {\n resolve(audio);\n });\n\n // 监听错误事件\n audio.addEventListener('error', () => {\n reject(new Error(`Failed to load audio from ${audio.src}.`));\n });\n\n // 开始加载音频\n audio.load();\n });\n}\n\n/**\n * 多媒体错误类\n */\nexport class MultimediaError extends Error {\n /**\n * 报错代码\n */\n code: number;\n\n /**\n * @param code - 错误代码\n * @param message - 错误信息\n */\n constructor (code: number, message: string) {\n super(message);\n this.code = code;\n this.name = this.constructor.name;\n\n if ('captureStackTrace' in Error && isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, MultimediaError);\n }\n }\n}\n\n/**\n * 检查浏览器是否支持播放指定的 HEVC 编解码器\n * @param codec - HEVC 编解码器\n * @returns 如果浏览器可能或确定支持该编解码器,则返回 true,否则返回 false\n */\nexport function canPlayHevcCodec (codec: spec.HevcVideoCodec): boolean {\n const video = document.createElement('video');\n const contentType = `video/mp4; codecs=\"${codec}\"`;\n const result = video.canPlayType(contentType);\n\n return result === 'probably' || result === 'maybe';\n}\n\n/**\n * 将编解码器字符串解析为 HEVC 视频编解码器枚举值\n * @param codec - 编解码器字符串(可以是枚举值或枚举名称)\n * @returns 对应的 HEVC 视频编解码器枚举值,如果无效则返回 undefined\n */\nexport function parseCodec (codec: string): spec.HevcVideoCodec | undefined {\n // 传入的是完整的枚举值\n if (isCodecValue(codec)) {\n return codec;\n }\n\n // 传入的是枚举名称\n if (isCodecKey(codec)) {\n return spec.HevcVideoCodec[codec];\n }\n\n return undefined;\n}\n\n/**\n * 检查给定字符串是否为有效的 HEVC 枚举值\n * @param codec - 待检查的字符串\n * @returns 如果是有效的枚举值则返回 true\n */\nfunction isCodecValue (codec: string): codec is spec.HevcVideoCodec {\n return Object\n .keys(spec.HevcVideoCodec)\n .some(key =>\n spec.HevcVideoCodec[key as keyof typeof spec.HevcVideoCodec] as string === codec\n );\n}\n\n/**\n * 检查给定字符串是否为有效的 HEVC 枚举键名\n * @param codec - 待检查的字符串\n * @returns 如果是有效的枚举键名则返回 true\n */\nfunction isCodecKey (codec: string): codec is keyof typeof spec.HevcVideoCodec {\n return codec in spec.HevcVideoCodec;\n}\n\n/**\n * 获取视频 URL,根据配置和浏览器能力选择最优的视频源\n * @param medium - 媒体资源对象\n * @param options - 场景加载选项\n * @returns 最优的视频 URL(优先返回 HEVC 格式,如果支持的话)\n */\nfunction getVideoUrl (medium: spec.VideoInfo, options: SceneLoadOptions) {\n if (!options.useHevcVideo) {\n return medium.url;\n }\n\n const { hevc } = medium;\n\n if (!hevc?.url || !hevc?.codec) {\n return medium.url;\n }\n\n const codec = parseCodec(hevc.codec);\n\n return (codec && canPlayHevcCodec(codec)) ? hevc.url : medium.url;\n}\n","import type { Scene, SceneLoadOptions } from '@galacean/effects';\nimport { spec, Plugin } from '@galacean/effects';\nimport { processMultimedia } from '../utils';\n\n/**\n * 视频加载插件\n */\nexport class VideoLoader extends Plugin {\n\n override async onAssetsLoadStart (\n scene: Scene,\n options: SceneLoadOptions = {},\n ) {\n const { videos = [] } = scene.jsonScene;\n const loadedAssets = await processMultimedia<HTMLVideoElement>(videos, spec.MultimediaType.video, options);\n\n for (let i = 0;i < videos.length;i++) {\n const video = videos[i];\n\n scene.assets[video.id] = loadedAssets[i];\n }\n }\n}\n","import type { ImageLike, Scene, SceneLoadOptions } from '@galacean/effects';\nimport { spec, Plugin } from '@galacean/effects';\nimport { processMultimedia } from '../utils';\n\n/**\n * 音频加载插件\n */\nexport class AudioLoader extends Plugin {\n\n override async onAssetsLoadStart (\n scene: Scene,\n options: SceneLoadOptions = {},\n ) {\n const { audios = [] } = scene.jsonScene;\n const loadedAssets = await processMultimedia<HTMLAudioElement | AudioBuffer>(audios, spec.MultimediaType.audio, options);\n\n for (let i = 0;i < audios.length;i++) {\n const audio = audios[i];\n\n scene.assets[audio.id] = loadedAssets[i] as ImageLike;\n }\n }\n}\n","import type { Asset, Engine, GeometryFromShape, Renderer, Texture2DSourceOptionsVideo } from '@galacean/effects';\nimport { MaskableGraphic, Texture, assertExist, effectsClass, math, spec } from '@galacean/effects';\n\n/**\n * 用于创建 videoItem 的数据类型, 经过处理后的 spec.VideoContent\n */\nexport interface VideoItemProps extends Omit<spec.VideoComponentData, 'renderer' | 'mask'> {\n listIndex?: number,\n renderer: {\n shape?: GeometryFromShape,\n texture: Texture,\n } & Omit<spec.RendererOptions, 'texture'>,\n mask?: spec.MaskOptions,\n}\n\nlet seed = 0;\n\n/**\n * Video component class\n */\n@effectsClass(spec.DataType.VideoComponent)\nexport class VideoComponent extends MaskableGraphic {\n video?: HTMLVideoElement;\n\n /**\n * 播放标志位\n */\n private played = false;\n private pendingPause = false;\n private threshold = 0.03;\n /**\n * 解决 video 暂停报错问题\n *\n * video.play(); // <-- This is asynchronous!\n *\n * video.pause();\n *\n * @see https://developer.chrome.com/blog/play-request-was-interrupted\n */\n private isPlayLoading = false;\n\n /**\n * 视频元素是否激活\n */\n isVideoActive = false;\n\n /**\n * 是否为透明视频\n */\n protected transparent = false;\n\n // 事件处理器引用,用于正确移除事件监听\n private handleGoto?: (option: { time: number }) => void;\n private handlePause?: () => void;\n private handlePlay?: (option: { time: number }) => void;\n\n constructor (engine: Engine) {\n super(engine);\n\n this.name = 'MVideo' + seed++;\n }\n\n override setTexture (input: Texture): void;\n override async setTexture (input: string): Promise<void>;\n override async setTexture (input: Texture | string): Promise<void> {\n const oldTexture = this.renderer.texture;\n const composition = this.item.composition;\n let texture: Texture;\n\n if (typeof input === 'string') {\n texture = await Texture.fromVideo(input, this.item.engine);\n } else {\n texture = input;\n }\n\n if (!composition) { return; }\n\n composition.textures.forEach((cachedTexture, index) => {\n if (cachedTexture === oldTexture) {\n composition.textures[index] = texture;\n }\n });\n\n this.engine.removeTexture(oldTexture);\n this.renderer.texture = texture;\n this.material.setTexture('_MainTex', texture);\n this.video = (texture.source as Texture2DSourceOptionsVideo).video;\n }\n\n override onAwake (): void {\n super.onAwake();\n\n const composition = this.item.composition;\n\n if (!composition) {\n return;\n }\n\n this.handleGoto = (option: { time: number }) => {\n this.setCurrentTime(this.item.time);\n };\n this.handlePause = () => {\n this.pauseVideo();\n };\n this.handlePlay = (option: { time: number }) => {\n if (this.item.time < 0) {return;}\n this.playVideo();\n };\n\n composition.on('goto', this.handleGoto);\n composition.on('pause', this.handlePause);\n composition.on('play', this.handlePlay);\n }\n\n override fromData (data: VideoItemProps): void {\n super.fromData(data);\n\n const { interaction, options } = data;\n const {\n video,\n startColor = [1, 1, 1, 1],\n playbackRate = 1,\n volume = 1,\n muted = false,\n transparent = false,\n } = options;\n\n this.transparent = transparent;\n\n if (video) {\n const videoAsset = this.engine.findObject<Asset<HTMLVideoElement>>(video);\n\n if (videoAsset) {\n this.video = videoAsset.data;\n this.setPlaybackRate(playbackRate);\n this.setVolume(volume);\n this.setMuted(muted);\n const endBehavior = this.item.definition.endBehavior;\n\n // 如果元素设置为 destroy\n if (endBehavior === spec.EndBehavior.destroy || endBehavior === spec.EndBehavior.freeze) {\n this.setLoop(false);\n } else if (endBehavior === spec.EndBehavior.restart) {\n this.setLoop(true);\n }\n }\n }\n\n this.interaction = interaction;\n this.pauseVideo();\n\n if (this.transparent) {\n this.material.enableMacro('TRANSPARENT_VIDEO', this.transparent);\n }\n\n this.material.setColor('_Color', new math.Color().setFromArray(startColor));\n }\n\n override render (renderer: Renderer): void {\n super.render(renderer);\n this.renderer.texture.uploadCurrentVideoFrame();\n }\n\n override onUpdate (dt: number): void {\n super.onUpdate(dt);\n const { time: videoTime, duration: videoDuration, endBehavior: videoEndBehavior, composition } = this.item;\n\n assertExist(composition);\n const { endBehavior: rootEndBehavior, duration: rootDuration } = composition.rootItem;\n\n // 判断是否处于\"结束状态\":\n // - 视频时间为 0(未开始)\n // - 合成时间已达最大时长(播放完毕)\n // - 视频时间接近或等于其总时长(考虑容差阈值)\n const isEnd = (videoTime === 0 || Math.abs(composition.time - rootDuration) <= this.threshold || Math.abs(videoTime - videoDuration) <= this.threshold);\n\n // 如果视频时间大于等于 0,且未到结束状态,并且尚未触发播放,则开始播放视频\n if (videoTime >= 0 && !isEnd && !this.played && this.isVideoActive) {\n this.playVideo();\n }\n\n // 当视频播放时间接近或超过其总时长时,根据其结束行为进行处理\n if (videoTime + this.threshold >= videoDuration) {\n if (videoEndBehavior === spec.EndBehavior.freeze) {\n if (!this.video?.paused) {\n this.pauseVideo();\n }\n }\n }\n // 判断整个合成是否接近播放完成\n // composition.time + threshold >= rootDuration 表示即将结束\n if (composition.time + this.threshold >= rootDuration) {\n if (rootEndBehavior === spec.EndBehavior.freeze) {\n if (!this.video?.paused) {\n this.pauseVideo();\n }\n } else if (rootEndBehavior === spec.EndBehavior.restart) {\n this.setCurrentTime(0);\n }\n }\n }\n /**\n * 获取当前视频时长\n * @returns 视频时长\n */\n getDuration (): number {\n return this.video ? this.video.duration : 0;\n }\n\n /**\n * 获取当前视频播放时刻\n * @returns 当前视频播放时刻\n */\n getCurrentTime (): number {\n return this.video ? this.video.currentTime : 0;\n }\n\n /**\n * 设置当前视频播放时刻\n * @param time 视频播放时刻\n */\n setCurrentTime (time: number) {\n if (this.video) {\n this.video.currentTime = time;\n }\n }\n\n /**\n * 设置视频是否循环播放\n * @param loop 是否循环播放\n */\n setLoop (loop: boolean) {\n if (this.video) {\n this.video.loop = loop;\n }\n }\n\n /**\n * 设置视频是否静音\n * @param muted 是否静音\n */\n setMuted (muted: boolean) {\n if (this.video && this.video.muted !== muted) {\n this.video.muted = muted;\n }\n }\n\n /**\n * 设置视频音量\n * @param volume 视频音量\n */\n setVolume (volume: number) {\n if (this.video && this.video.volume !== volume) {\n this.video.volume = volume;\n }\n }\n\n /**\n * 设置当前视频是否为透明视频\n * @param transparent 是否为透明视频\n */\n setTransparent (transparent: boolean): void {\n if (this.transparent === transparent) {\n return;\n }\n\n if (transparent) {\n this.material.enableMacro('TRANSPARENT_VIDEO', true);\n } else {\n this.material.disableMacro('TRANSPARENT_VIDEO');\n }\n this.transparent = transparent;\n }\n\n /**\n * 设置视频播放速率\n * @param rate 视频播放速率\n */\n setPlaybackRate (rate: number) {\n if (!this.video || this.video.playbackRate === rate) {\n return;\n }\n this.video.playbackRate = rate;\n }\n\n /**\n * 播放视频\n * @since 2.3.0\n */\n playVideo (): void {\n if (this.played) {\n return;\n }\n if (this.video) {\n this.played = true;\n this.isPlayLoading = true;\n this.pendingPause = false;\n this.video.play().\n then(() => {\n this.isPlayLoading = false;\n // 如果在 play pending 期间被请求了 pause,则立即暂停并复位 played\n if (!this.played || this.pendingPause) {\n this.pendingPause = false;\n this.played = false;\n this.video?.pause();\n }\n })\n .catch(error => {\n // 复位状态\n this.isPlayLoading = false;\n this.played = false;\n this.pendingPause = false;\n if (error.name !== 'AbortError') { this.engine.renderErrors.add(error); }\n });\n }\n }\n\n /**\n * 暂停视频\n * @since 2.3.0\n */\n pauseVideo (): void {\n if (this.played) {\n this.played = false;\n }\n if (!this.video) { return; }\n\n if (this.isPlayLoading) {\n this.pendingPause = true;\n\n return;\n }\n this.video.pause();\n }\n\n override onDestroy (): void {\n super.onDestroy();\n\n // 清理播放状态\n this.played = false;\n this.isPlayLoading = false;\n this.pendingPause = false;\n this.isVideoActive = false;\n\n // 清理video资源\n if (this.video) {\n // 暂停视频\n this.video.pause();\n\n // 移除video源,帮助垃圾回收\n this.video.removeAttribute('src');\n this.video.load();\n\n // 清理video引用\n this.video = undefined;\n }\n\n // 清理事件监听\n const composition = this.item?.composition;\n\n if (composition) {\n if (this.handleGoto) {\n composition.off('goto', this.handleGoto);\n }\n if (this.handlePause) {\n composition.off('pause', this.handlePause);\n }\n if (this.handlePlay) {\n composition.off('play', this.handlePlay);\n }\n }\n // 清理处理器引用\n this.handleGoto = undefined;\n this.handlePause = undefined;\n this.handlePlay = undefined;\n }\n\n override onDisable (): void {\n super.onDisable();\n\n this.isVideoActive = false;\n this.pauseVideo();\n }\n\n override onEnable (): void {\n super.onEnable();\n this.isVideoActive = true;\n this.played = false;\n // 重播时确保视频同步到当前时间\n if (this.video && this.item.composition) {\n this.setCurrentTime(Math.max(0, this.item.time));\n }\n this.playVideo();\n }\n}\n","import type { Engine } from '@galacean/effects';\nimport { spec } from '@galacean/effects';\n\ninterface AudioSourceInfo {\n source?: AudioBufferSourceNode,\n audioContext?: AudioContext,\n gainNode?: GainNode,\n}\n\nexport interface AudioPlayerOptions {\n endBehavior: spec.EndBehavior,\n duration: number,\n}\n\nexport class AudioPlayer {\n audio?: HTMLAudioElement;\n audioSourceInfo: AudioSourceInfo = {};\n private pendingOffset = 0;\n private isSupportAudioContext = !!window['AudioContext'];\n private options: AudioPlayerOptions = {\n endBehavior: spec.EndBehavior.destroy,\n duration: 0,\n };\n private destroyed = false;\n private started = false;\n private initialized = false;\n private currentVolume = 1;\n\n constructor (\n private engine: Engine,\n audio?: AudioBuffer | HTMLAudioElement,\n ) {\n if (audio) {\n this.setAudioSource(audio);\n }\n }\n\n /**\n * 设置音频资源\n * @param audio - 音频资源\n */\n setAudioSource (audio: AudioBuffer | HTMLAudioElement) {\n if (this.audio || this.audioSourceInfo.source) {\n this.dispose();\n }\n if (audio instanceof AudioBuffer) {\n const audioContext = new AudioContext();\n const gainNode = audioContext.createGain();\n\n gainNode.connect(audioContext.destination);\n\n const source = audioContext.createBufferSource();\n\n source.buffer = audio;\n source.connect(gainNode);\n\n this.audioSourceInfo = {\n source,\n audioContext,\n gainNode,\n };\n } else {\n this.audio = audio;\n }\n if (this.started) {\n this.play();\n }\n }\n\n getCurrentTime (): number {\n if (this.isSupportAudioContext) {\n const { audioContext } = this.audioSourceInfo;\n\n return audioContext?.currentTime || 0;\n } else {\n return this.audio?.currentTime || 0;\n }\n }\n /**\n * 设置音频当前时间\n * WebAudio下设置 this.pendingOffset,后面play时直接从该事件play\n * HTMLAudioElement下直接设置时间\n */\n setCurrentTime (time: number) {\n const t = Math.max(0, time);\n\n if (this.isSupportAudioContext) {\n const upper = this.options.duration && this.options.duration > 0 ? this.options.duration : undefined;\n\n this.pendingOffset = upper ? Math.min(t, upper) : t;\n\n return;\n } else {\n if (this.audio) {\n const dur = Number.isFinite(this.audio.duration) ? this.audio.duration : undefined;\n const clamped = dur ? Math.min(t, dur) : t;\n\n this.audio.currentTime = clamped;\n }\n }\n }\n /**\n * 播放音频\n */\n play (): void {\n if (this.isSupportAudioContext) {\n const { audioContext, source, gainNode } = this.audioSourceInfo;\n\n if (!audioContext || !gainNode) {return;}\n\n const buffer = source?.buffer;\n\n if (!buffer) {return;}\n const maxDuration = this.options.duration && this.options.duration > 0 ? this.options.duration : buffer.duration;\n\n // 保险起见,先停掉旧 source,吞掉异常(旧节点是否成功 stop 不影响后续逻辑)\n // eslint-disable-next-line no-empty\n try { source?.stop(); } catch {}\n\n // AudioBufferSourceNode 是一次性节点,start 后不能二次 start。无论之前是否 start 过,先调用 stop 清理旧节点。\n const newSource = audioContext.createBufferSource();\n\n newSource.buffer = buffer;\n newSource.connect(gainNode);\n\n // 继承旧的播放参数\n newSource.playbackRate.value = source?.playbackRate.value ?? 1;\n\n if (this.options.endBehavior === spec.EndBehavior.restart) {\n newSource.loop = true;\n newSource.loopStart = 0;\n newSource.loopEnd = maxDuration;\n } else {\n newSource.loop = source?.loop ?? false;\n newSource.loopStart = source?.loopStart ?? 0;\n newSource.loopEnd = source?.loopEnd ?? maxDuration;\n }\n this.audioSourceInfo.source = newSource;\n\n if (audioContext.state === 'suspended') {\n audioContext.resume().catch(e => this.engine.renderErrors.add(e));\n }\n\n try {\n newSource.start(0, this.pendingOffset || 0);\n this.pendingOffset = 0;\n this.started = true;\n } catch (e) {\n this.engine.renderErrors.add(e as Error);\n }\n } else {\n if (this.audio) {\n this.audio.loop = this.options.endBehavior === spec.EndBehavior.restart;\n this.audio.play().catch(e => this.engine.renderErrors.add(e));\n this.started = true;\n }\n }\n }\n\n pause (): void {\n if (this.isSupportAudioContext) {\n const { source, audioContext } = this.audioSourceInfo;\n\n if (!audioContext) {\n return;\n }\n if (audioContext.currentTime > 0 && this.started) {\n source?.stop();\n }\n } else {\n this.audio?.pause();\n }\n }\n\n setVolume (volume: number): void {\n if (this.isSupportAudioContext) {\n const { gainNode } = this.audioSourceInfo;\n\n if (gainNode) {\n gainNode.gain.value = volume;\n this.currentVolume = volume;\n }\n } else {\n if (this.audio) {\n this.audio.volume = volume;\n this.currentVolume = volume;\n }\n }\n }\n\n setPlaybackRate (rate: number): void {\n if (this.isSupportAudioContext) {\n const { source } = this.audioSourceInfo;\n\n if (source) {\n source.playbackRate.value = rate;\n }\n } else {\n if (this.audio) {\n this.audio.playbackRate = rate;\n }\n }\n }\n\n setLoop (loop: boolean): void {\n if (this.isSupportAudioContext) {\n const { source } = this.audioSourceInfo;\n\n if (!source) {\n this.engine.renderErrors.add(new Error('Audio source is not found.'));\n } else {\n source.loop = loop;\n }\n } else {\n if (this.audio) {\n this.audio.loop = loop;\n }\n }\n }\n\n setOptions (options: AudioPlayerOptions): void {\n if (this.initialized) {\n return;\n }\n this.options = options;\n this.initialized = true;\n }\n\n setMuted (muted: boolean): void {\n if (this.isSupportAudioContext) {\n const { gainNode } = this.audioSourceInfo;\n const value = muted ? 0 : this.currentVolume;\n\n if (gainNode) {\n gainNode.gain.value = value;\n }\n } else {\n if (this.audio) {\n this.audio.muted = muted;\n }\n }\n }\n\n dispose (): void {\n if (this.destroyed) {\n return;\n }\n if (this.isSupportAudioContext) {\n const { audioContext, source } = this.audioSourceInfo;\n\n if (this.started) {\n source?.stop();\n }\n audioContext?.close().catch(e => {\n this.engine.renderErrors.add(e);\n });\n } else {\n this.audio?.pause();\n }\n this.destroyed = true;\n }\n}\n","import type { Asset } from '@galacean/effects';\nimport { effectsClass, RendererComponent, spec } from '@galacean/effects';\nimport { AudioPlayer } from './audio-player';\n\n@effectsClass(spec.DataType.AudioComponent)\nexport class AudioComponent extends RendererComponent {\n audioPlayer: AudioPlayer;\n private isPlaying = false;\n override onAwake (): void {\n super.onAwake();\n\n this.item.composition?.on('play', (option: { time: number }) => {\n this.audioPlayer.setMuted(false);\n if (this.item.time <= 0) {return;}\n this.audioPlayer.setCurrentTime(this.item.time);\n this.audioPlayer.play();\n this.isPlaying = true;\n });\n\n this.item.composition?.on('pause', () => {\n this.audioPlayer.setMuted(true);\n this.audioPlayer.pause();\n this.isPlaying = false;\n });\n\n this.item.composition?.on('goto', (option: { time: number }) => {\n this.audioPlayer.setMuted(true);\n this.audioPlayer.setCurrentTime(this.item.time);\n });\n }\n\n override onUpdate (dt: number): void {\n super.onUpdate(dt);\n\n const { time, duration, endBehavior } = this.item;\n\n if (time > 0 && this.isPlaying == false) {\n this.audioPlayer.play();\n this.isPlaying = true;\n }\n\n this.audioPlayer.setOptions({\n duration,\n endBehavior,\n });\n }\n\n override fromData (data: spec.AudioComponentData): void {\n super.fromData(data);\n\n const { options } = data;\n const { playbackRate = 1, muted = false, volume = 1 } = options;\n let audio: AudioBuffer | HTMLAudioElement | undefined = undefined;\n\n if (options.audio) {\n const audioAsset = this.engine.findObject<Asset<HTMLAudioElement | AudioBuffer>>(options.audio);\n\n audio = audioAsset.data;\n }\n\n this.audioPlayer = new AudioPlayer(this.engine, audio);\n this.audioPlayer.pause();\n this.setPlaybackRate(playbackRate);\n this.setMuted(muted);\n this.setVolume(volume);\n }\n\n /**\n * 设置音频资源\n * @param audio - 音频资源\n */\n setAudioSource (audio: HTMLAudioElement | AudioBuffer): void {\n this.audioPlayer.setAudioSource(audio);\n }\n\n /**\n * 设置音量\n * @param volume - 音量\n */\n setVolume (volume: number): void {\n this.audioPlayer.setVolume(volume);\n }\n\n /**\n * 获取当前音频的播放时刻\n */\n getCurrentTime (): number {\n return this.audioPlayer.getCurrentTime();\n }\n\n /**\n * 设置是否静音\n * @param muted - 是否静音\n */\n setMuted (muted: boolean): void {\n this.audioPlayer.setMuted(muted);\n }\n\n /**\n * 设置是否循环播放\n * @param loop - 是否循环播放\n */\n setLoop (loop: boolean): void {\n this.audioPlayer.setLoop(loop);\n }\n\n /**\n * 设置播放速率\n * @param rate - 播放速率\n */\n setPlaybackRate (rate: number): void {\n this.audioPlayer.setPlaybackRate(rate);\n }\n\n override onDisable (): void {\n super.onDisable();\n\n this.audioPlayer.pause();\n }\n\n override dispose (): void {\n super.dispose();\n\n this.audioPlayer.dispose();\n }\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger, registerPlugin } from '@galacean/effects';\nimport { VideoLoader } from './video/video-loader';\nimport { AudioLoader } from './audio/audio-loader';\n\nexport * from './video/video-component';\nexport * from './audio/audio-component';\nexport * from './audio/audio-player';\nexport * from './constants';\nexport * from './utils';\n\n/**\n * 插件版本号\n */\nexport const version = __VERSION__;\n\nregisterPlugin('video', VideoLoader);\nregisterPlugin('audio', AudioLoader);\n\nlogger.info(`Plugin multimedia version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 Multimedia 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the Multimedia plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\n );\n}\n"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_async_to_generator","fn","self","args","arguments","apply","err","undefined","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","_is_native_reflect_construct","result","Boolean","valueOf","call","Reflect","construct","_","_construct","Parent","Class","a","push","Constructor","Function","bind","instance","_get_prototype_of","getPrototypeOf","_is_native_function","toString","indexOf","_wrap_native_super","_cache","Map","has","get","set","Wrapper","enumerable","_instanceof","left","right","Symbol","hasInstance","__decorate","decorators","target","desc","c","length","r","getOwnPropertyDescriptor","d","decorate","i","defineProperty","__generator","thisArg","body","label","sent","t","trys","ops","f","y","g","Iterator","next","verb","iterator","n","v","step","op","pop","e","SuppressedError","suppressed","message","Error","name","_assert_this_initialized","ReferenceError","multimediaErrorMessageMap","multimediaErrorDisplayMessageMap","processMultimedia","media","type","options","renderLevel","jobs","map","medium","passRenderLevel","spec","MultimediaType","video","videoURL","getVideoUrl","url","URL","location","href","loadVideo","audio","loadAudio","JSON","stringify","all","checkAutoplayPermission","document","createElement","src","muted","crossOrigin","play","MultimediaError","isSupportAudioContext","audioContext","buffer","decodedData","window","AudioContext","loadBinary","decodeAudioData","Audio","srcObject","addEventListener","load","code","isFunction","captureStackTrace","canPlayHevcCodec","codec","contentType","canPlayType","parseCodec","isCodecValue","isCodecKey","HevcVideoCodec","keys","some","useHevcVideo","hevc","VideoLoader","onAssetsLoadStart","scene","videos","loadedAssets","jsonScene","assets","id","Plugin","AudioLoader","audios","seed","VideoComponent","engine","played","pendingPause","threshold","isPlayLoading","isVideoActive","transparent","setTexture","input","oldTexture","composition","texture","renderer","item","Texture","fromVideo","textures","forEach","cachedTexture","index","removeTexture","material","source","onAwake","handleGoto","option","setCurrentTime","time","handlePause","pauseVideo","handlePlay","playVideo","on","fromData","data","interaction","startColor","playbackRate","volume","videoAsset","findObject","setPlaybackRate","setVolume","setMuted","endBehavior","definition","EndBehavior","destroy","freeze","setLoop","restart","enableMacro","setColor","math","Color","setFromArray","render","uploadCurrentVideoFrame","onUpdate","dt","videoTime","duration","videoDuration","videoEndBehavior","assertExist","rootItem","rootEndBehavior","rootDuration","isEnd","Math","abs","paused","getDuration","getCurrentTime","currentTime","loop","setTransparent","disableMacro","rate","pause","catch","renderErrors","add","onDestroy","removeAttribute","off","onDisable","onEnable","max","MaskableGraphic","effectsClass","DataType","AudioPlayer","audioSourceInfo","pendingOffset","destroyed","started","initialized","currentVolume","setAudioSource","dispose","AudioBuffer","gainNode","createGain","connect","destination","createBufferSource","upper","min","dur","Number","isFinite","clamped","maxDuration","stop","newSource","loopStart","loopEnd","state","resume","start","gain","setOptions","close","AudioComponent","isPlaying","audioPlayer","audioAsset","RendererComponent","version","registerPlugin","logger","EFFECTS","console"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_function.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_native_super.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_assert_this_initialized.js","../src/constants.ts","../src/utils.ts","../src/video/video-loader.ts","../src/audio/audio-loader.ts","../src/video/video-component.ts","../src/audio/audio-player.ts","../src/audio/audio-component.ts","../src/index.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","function _is_native_reflect_construct() {\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\n\nexport { _is_native_reflect_construct as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","function _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n\n return _get_prototype_of(o);\n}\nexport { _get_prototype_of as _ };\n","function _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nexport { _is_native_function as _ };\n","import { _ as _construct } from \"./_construct.js\";\nimport { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_function } from \"./_is_native_function.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") throw new TypeError(\"Super expression must either be null or a function\");\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n\n return _set_prototype_of(Wrapper, Class);\n };\n\n return _wrap_native_super(Class);\n}\nexport { _wrap_native_super as _ };\n","function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function _assert_this_initialized(self) {\n if (self === void 0) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\n return self;\n}\nexport { _assert_this_initialized as _ };\n","export const multimediaErrorMessageMap: Record<number, string> = {\n 2000: 'Autoplay permission for audio and video is not enabled',\n};\nexport const multimediaErrorDisplayMessageMap = {\n 2000: '音视频自动播放权限未开启',\n};\n","import type { SceneLoadOptions } from '@galacean/effects';\nimport { loadBinary, loadVideo, spec, passRenderLevel, isFunction } from '@galacean/effects';\nimport { multimediaErrorMessageMap } from './constants';\n\n/**\n * 处理多媒体资源加载\n * @param media - 多媒体资源数组\n * @param type - 多媒体类型(视频或音频)\n * @param options - 场景加载选项\n * @returns 加载完成的多媒体资源数组\n */\nexport async function processMultimedia<T> (\n media: spec.AssetBase[],\n type: spec.MultimediaType,\n options: SceneLoadOptions,\n): Promise<T[]> {\n const { renderLevel } = options;\n const jobs = media.map(medium => {\n if (passRenderLevel(medium.renderLevel, renderLevel)) {\n if (type === spec.MultimediaType.video) {\n const videoURL = getVideoUrl(medium, options);\n const url = new URL(videoURL, location.href).href;\n\n return loadVideo(url);\n } else if (type === spec.MultimediaType.audio) {\n const url = new URL(medium.url, location.href).href;\n\n return loadAudio(url);\n }\n }\n\n throw new Error(`Invalid ${type} source: ${JSON.stringify(media)}.`);\n });\n\n return Promise.all(jobs) as Promise<T[]>;\n}\n\n/**\n * 判断音视频浏览器是否允许播放\n * @throws {MultimediaError} 当浏览器不允许自动播放时抛出错误\n */\nexport async function checkAutoplayPermission () {\n const audio = document.createElement('audio');\n\n // src 为长度为 0.1s 的音频片段\n audio.src = 'data:audio/mpeg;base64,//uQxAACFCEW8uewc8Nfu50FhJuQAGAFJCAhaIHoMhfEnBzixrwNsCGGGmyeCECGGRKWwnB0MkzGh6Hn7JLEstwCADQsJwBAAAOOhOAGAcd0gJgTBuW7HBgJBgfvEgCAEBEiOyeTDxyiyjZLEsRDyEzMz+921nJyWJZn6w8P1769e/AYCQI6tIJAkGHL16zpxhY5VeYGCdd3/93d9w4tygIO/4IHBOD8Hz/4f+IDkEHU4n8PqBMMBCQ0iXWYFnCIGqooaZHfRqOrgxuOtjmpCJCaYjmQqDz3NJUBTFWK4soYEoCumIJzIBldNhLUmAaDzhggZmSAkr9SqAIjGJFGEMCQlIPKDMuo24qZIrKDONHWGqlZbOymMy2yhCoBQywFQAgBEsETW0hCoIkqQWBINPWa3rCoEg1MiBIEiZMUiklyMfKVqoUOxIkSMtVTMzOMSBiKJQMAiWyROrf/5mq//8mkknNBQlFjiJFHKqqr//1VV6qq3vNVVbJpFHXkijM+pIoy1VX7zPOJEkmJAJaYgpqKBgASEAAIAAAAAAAAAAAA//uSxAAD1p0iZiw9OIgAADSAAAAEYAwFApgokRqIFjigukAADJhFjIUGoGFlRAycQGC5QsJJRWdRZRVWZVNYBStcjsRuaiMSgmOQOvVAKBSBY4ygsJGDCEoUEWrE3NBfUyJSSTTiPMpDUUvrhTsC7XR/G6bx2nse52G+cjBDhQW5tan7IZREJY6ULlDpCIhCIhkPDYgFaN2//3JZVZVY6UXQO2NXV1u//P/KSqyqSai7GFdu0DEqoheCVpA1v///6qqaaaYRKqIGKpiCmooGABIQAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==';\n audio.muted = true;\n audio.crossOrigin = 'anonymous';\n\n try {\n await audio.play();\n } catch (_) {\n throw new MultimediaError(2000, multimediaErrorMessageMap[2000]);\n }\n}\n\n/**\n * 异步加载一个音频文件\n * @param url - 音频文件的 URL\n * @returns 返回 AudioBuffer(如果支持 AudioContext)或 HTMLAudioElement\n * @throws {Error} 当音频加载失败时抛出错误\n */\nexport async function loadAudio (url: string): Promise<HTMLAudioElement | AudioBuffer> {\n const isSupportAudioContext = !!window['AudioContext'];\n\n if (isSupportAudioContext) {\n try {\n const audioContext = new AudioContext();\n const buffer = await loadBinary(url);\n const decodedData = await audioContext.decodeAudioData(buffer);\n\n return decodedData;\n } catch (_) {\n throw new Error(`Failed to load audio from ${url}.`);\n }\n }\n\n return new Promise((resolve, reject) => {\n const audio = new Audio();\n\n // 设置音频源\n if (typeof url === 'string') {\n audio.src = url;\n } else {\n audio.srcObject = url;\n }\n\n audio.muted = false;\n\n // 监听加载事件\n audio.addEventListener('canplaythrough', () => {\n resolve(audio);\n });\n\n // 监听错误事件\n audio.addEventListener('error', () => {\n reject(new Error(`Failed to load audio from ${audio.src}.`));\n });\n\n // 开始加载音频\n audio.load();\n });\n}\n\n/**\n * 多媒体错误类\n */\nexport class MultimediaError extends Error {\n /**\n * 报错代码\n */\n code: number;\n\n /**\n * @param code - 错误代码\n * @param message - 错误信息\n */\n constructor (code: number, message: string) {\n super(message);\n this.code = code;\n this.name = this.constructor.name;\n\n if ('captureStackTrace' in Error && isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, MultimediaError);\n }\n }\n}\n\n/**\n * 检查浏览器是否支持播放指定的 HEVC 编解码器\n * @param codec - HEVC 编解码器\n * @returns 如果浏览器可能或确定支持该编解码器,则返回 true,否则返回 false\n */\nexport function canPlayHevcCodec (codec: spec.HevcVideoCodec): boolean {\n const video = document.createElement('video');\n const contentType = `video/mp4; codecs=\"${codec}\"`;\n const result = video.canPlayType(contentType);\n\n return result === 'probably' || result === 'maybe';\n}\n\n/**\n * 将编解码器字符串解析为 HEVC 视频编解码器枚举值\n * @param codec - 编解码器字符串(可以是枚举值或枚举名称)\n * @returns 对应的 HEVC 视频编解码器枚举值,如果无效则返回 undefined\n */\nexport function parseCodec (codec: string): spec.HevcVideoCodec | undefined {\n // 传入的是完整的枚举值\n if (isCodecValue(codec)) {\n return codec;\n }\n\n // 传入的是枚举名称\n if (isCodecKey(codec)) {\n return spec.HevcVideoCodec[codec];\n }\n\n return undefined;\n}\n\n/**\n * 检查给定字符串是否为有效的 HEVC 枚举值\n * @param codec - 待检查的字符串\n * @returns 如果是有效的枚举值则返回 true\n */\nfunction isCodecValue (codec: string): codec is spec.HevcVideoCodec {\n return Object\n .keys(spec.HevcVideoCodec)\n .some(key =>\n spec.HevcVideoCodec[key as keyof typeof spec.HevcVideoCodec] as string === codec\n );\n}\n\n/**\n * 检查给定字符串是否为有效的 HEVC 枚举键名\n * @param codec - 待检查的字符串\n * @returns 如果是有效的枚举键名则返回 true\n */\nfunction isCodecKey (codec: string): codec is keyof typeof spec.HevcVideoCodec {\n return codec in spec.HevcVideoCodec;\n}\n\n/**\n * 获取视频 URL,根据配置和浏览器能力选择最优的视频源\n * @param medium - 媒体资源对象\n * @param options - 场景加载选项\n * @returns 最优的视频 URL(优先返回 HEVC 格式,如果支持的话)\n */\nfunction getVideoUrl (medium: spec.VideoInfo, options: SceneLoadOptions) {\n if (!options.useHevcVideo) {\n return medium.url;\n }\n\n const { hevc } = medium;\n\n if (!hevc?.url || !hevc?.codec) {\n return medium.url;\n }\n\n const codec = parseCodec(hevc.codec);\n\n return (codec && canPlayHevcCodec(codec)) ? hevc.url : medium.url;\n}\n","import type { Scene, SceneLoadOptions } from '@galacean/effects';\nimport { spec, Plugin } from '@galacean/effects';\nimport { processMultimedia } from '../utils';\n\n/**\n * 视频加载插件\n */\nexport class VideoLoader extends Plugin {\n\n override async onAssetsLoadStart (\n scene: Scene,\n options: SceneLoadOptions = {},\n ) {\n const { videos = [] } = scene.jsonScene;\n const loadedAssets = await processMultimedia<HTMLVideoElement>(videos, spec.MultimediaType.video, options);\n\n for (let i = 0;i < videos.length;i++) {\n const video = videos[i];\n\n scene.assets[video.id] = loadedAssets[i];\n }\n }\n}\n","import type { ImageLike, Scene, SceneLoadOptions } from '@galacean/effects';\nimport { spec, Plugin } from '@galacean/effects';\nimport { processMultimedia } from '../utils';\n\n/**\n * 音频加载插件\n */\nexport class AudioLoader extends Plugin {\n\n override async onAssetsLoadStart (\n scene: Scene,\n options: SceneLoadOptions = {},\n ) {\n const { audios = [] } = scene.jsonScene;\n const loadedAssets = await processMultimedia<HTMLAudioElement | AudioBuffer>(audios, spec.MultimediaType.audio, options);\n\n for (let i = 0;i < audios.length;i++) {\n const audio = audios[i];\n\n scene.assets[audio.id] = loadedAssets[i] as ImageLike;\n }\n }\n}\n","import type { Asset, Engine, GeometryFromShape, Texture2DSourceOptionsVideo } from '@galacean/effects';\nimport { MaskableGraphic, Texture, effectsClass, math, spec } from '@galacean/effects';\n\n/**\n * 用于创建 videoItem 的数据类型, 经过处理后的 spec.VideoContent\n */\nexport interface VideoItemProps extends Omit<spec.VideoComponentData, 'renderer' | 'mask'> {\n listIndex?: number,\n renderer: {\n shape?: GeometryFromShape,\n texture: Texture,\n } & Omit<spec.RendererOptions, 'texture'>,\n mask?: spec.MaskOptions,\n}\n\nlet seed = 0;\n\n/**\n * Video component class\n * 视频播放状态由以下两个维度的结束行为组合决定:\n * - 合成结束行为(rootEndBehavior):destroy / freeze / restart / forward\n * - 视频结束行为(videoEndBehavior):destroy / freeze / restart\n */\n@effectsClass(spec.DataType.VideoComponent)\nexport class VideoComponent extends MaskableGraphic {\n video?: HTMLVideoElement;\n\n /**\n * 视频元素是否激活\n */\n isVideoActive = false;\n\n /**\n * 是否为透明视频\n */\n protected transparent = false;\n\n /**\n * 是否由用户手动控制播放速率(覆盖合成的播放速率)\n */\n private manualPlaybackRate = false;\n\n /**\n * 是否由用户手动控制循环播放(覆盖合成的结束行为)\n */\n private manualLoop = false;\n\n /**\n * 是否由用户手动暂停视频\n */\n private manualPause = false;\n\n /**\n * 视频是否已开始播放\n */\n private playTriggered = false;\n\n /**\n * 上一次的视频时间,用于检测重播\n */\n private lastVideoTime = -1;\n\n /**\n * 视频是否已经销毁(用于 destroy 结束行为,确保只重置一次)\n */\n private videoDestroyed = false;\n\n /**\n * 视频是否处于 seek 中\n * seek 期间禁止上传帧,避免 destroy 后 seek 回 0 期间渲染旧帧\n */\n private videoSeeking = false;\n\n /**\n * 待执行的 seek 目标时间,延迟到 onUpdate 中处理以避免竞态。\n * 值为 null 表示没有待执行的 seek。\n */\n private pendingSeekTime: number | null = null;\n\n /**\n * 是否正在处理 gotoAndStop 的 seek\n * 用于跳过 pause 事件触发的 pauseVideoElement,等 seek 完成后再暂停\n */\n private isGotoAndStopSeeking = false;\n\n /**\n * 是否刚收到 goto 事件,等待后续 play/pause 事件来区分场景\n */\n private isWaitingForGotoResult = false;\n\n /**\n * 当前正在执行的 play() Promise,用于串行化 play 调用,避免上的竞态\n */\n private playPromise: Promise<void> | null = null;\n\n /**\n * 存储事件监听器的移除函数,用于销毁时清理\n */\n private eventDisposers: (() => void)[] = [];\n\n private static readonly threshold = 0.01;\n\n constructor (engine: Engine) {\n super(engine);\n\n this.name = 'MVideo' + seed++;\n }\n\n override setTexture (input: Texture): void;\n override async setTexture (input: string): Promise<void>;\n override async setTexture (input: Texture | string): Promise<void> {\n const oldTexture = this.renderer.texture;\n const composition = this.item.composition;\n\n if (!composition) { return; }\n\n let texture: Texture;\n\n if (typeof input === 'string') {\n texture = await Texture.fromVideo(input, this.item.engine);\n } else {\n texture = input;\n }\n\n composition.textures.forEach((cachedTexture, index) => {\n if (cachedTexture === oldTexture) {\n composition.textures[index] = texture;\n }\n });\n\n this.engine.removeTexture(oldTexture);\n this.renderer.texture = texture;\n this.material.setTexture('_MainTex', texture);\n this.video = (texture.source as Texture2DSourceOptionsVideo).video;\n }\n\n override onAwake (): void {\n super.onAwake();\n\n const composition = this.item.composition;\n\n if (!composition) { return; }\n\n this.eventDisposers.push(\n composition.on('goto', () => this.handleGoto()),\n composition.on('play', () => this.handleCompositionPlay()),\n composition.on('pause', () => this.handleCompositionPause()),\n composition.on('end', () => this.handleCompositionEnd()),\n );\n }\n\n override fromData (data: VideoItemProps): void {\n super.fromData(data);\n\n const { interaction, options } = data;\n const {\n video,\n startColor = [1, 1, 1, 1],\n playbackRate = 1,\n volume = 1,\n muted = false,\n transparent = false,\n } = options;\n\n this.transparent = transparent;\n\n if (video) {\n const videoAsset = this.engine.findObject<Asset<HTMLVideoElement>>(video);\n\n if (videoAsset) {\n this.video = videoAsset.data;\n this.video.playbackRate = playbackRate;\n this.setVolume(volume);\n this.setMuted(muted);\n const endBehavior = this.item.definition.endBehavior;\n\n if (endBehavior === spec.EndBehavior.destroy || endBehavior === spec.EndBehavior.freeze) {\n this.video.loop = false;\n } else if (endBehavior === spec.EndBehavior.restart) {\n this.video.loop = true;\n }\n\n }\n }\n\n this.interaction = interaction;\n\n if (this.transparent) {\n this.material.enableMacro('TRANSPARENT_VIDEO', this.transparent);\n }\n\n this.material.setColor('_Color', new math.Color().setFromArray(startColor));\n }\n\n override onUpdate (dt: number): void {\n super.onUpdate(dt);\n\n if (!this.video || this.video.readyState < 2) {\n return;\n }\n\n // 处理延迟 seek(避免与 forwardTime 同步调用产生竞态)\n if (this.processPendingSeek()) {\n return;\n }\n\n // 检测当前是否为重播状态\n this.detectCompositionRestart();\n\n // 根据结束行为决定视频状态\n if (this.shouldFreezeVideo()) {\n this.freezeVideo();\n\n return;\n }\n\n if (this.shouldStartVideo()) {\n this.startVideo();\n }\n\n this.updatePlaybackRate();\n this.ensureLoopFlag();\n this.handleDestroyBehavior();\n\n // 上传当前视频帧\n if (!this.videoSeeking) {\n this.renderer.texture.uploadCurrentVideoFrame();\n }\n }\n\n override onDestroy (): void {\n this.eventDisposers.forEach(dispose => dispose());\n this.eventDisposers = [];\n super.onDestroy();\n this.playTriggered = false;\n this.playPromise = null;\n if (this.video) {\n this.video.pause();\n this.video.src = '';\n this.video.load();\n }\n }\n\n override onDisable (): void {\n super.onDisable();\n this.isVideoActive = false;\n this.playTriggered = false;\n this.pauseVideoElement();\n }\n\n override onEnable (): void {\n super.onEnable();\n this.isVideoActive = true;\n this.playTriggered = false;\n this.syncVideoToItemTime();\n }\n\n /**\n * 处理 goto 事件:重置播放状态,记录待 seek 时间\n */\n private handleGoto (): void {\n // 通过后续事件区分 gotoAndPlay 和 gotoAndStop\n this.isWaitingForGotoResult = true;\n this.playTriggered = false;\n this.manualPause = false;\n this.pendingSeekTime = this.getItemSeekTime();\n }\n\n /**\n * 处理合成 pause 事件\n * 如果刚收到 goto 事件且等待结果,说明是 gotoAndStop 场景\n */\n private handleCompositionPause (): void {\n // gotoAndStop 场景\n if (this.isWaitingForGotoResult) {\n this.isWaitingForGotoResult = false;\n if (this.video && this.video.readyState >= 2) {\n this.isGotoAndStopSeeking = true;\n this.performSeek(this.getItemSeekTime(), false, true);\n }\n\n return;\n }\n // 普通 pause 事件:暂停视频\n this.pauseVideoElement();\n }\n\n /**\n * 处理合成 play 事件(合成开始/重播/恢复时触发)\n */\n private handleCompositionPlay (): void {\n // 如果正在等待 goto 结果,说明是 gotoAndPlay 场景\n if (this.isWaitingForGotoResult) {\n this.isWaitingForGotoResult = false;\n }\n // 合成未结束时(暂停后恢复),恢复视频播放\n if (!this.checkCompositionEnded()) {\n // 如果正在 seeking,不恢复播放,等 seek 完成后再恢复\n if (this.canPlayCurrentItem() && this.video?.paused) {\n this.safePlay();\n }\n\n return;\n }\n\n this.playTriggered = false;\n this.manualPause = false;\n const videoEndBehavior = this.item.endBehavior;\n\n if (videoEndBehavior === spec.EndBehavior.freeze && this.video) {\n this.pendingSeekTime = 0;\n } else if (videoEndBehavior === spec.EndBehavior.destroy) {\n this.videoDestroyed = false;\n }\n }\n\n /**\n * 根据合成结束行为决定视频的后续处理\n */\n private handleCompositionEnd (): void {\n const rootEndBehavior = this.item.composition?.rootItem.endBehavior;\n\n if (rootEndBehavior === spec.EndBehavior.restart) {\n // 合成 restart:所有视频都需要 seek 回 0,和合成时间对齐\n if (!this.videoSeeking) {\n this.pendingSeekTime = 0;\n }\n this.playTriggered = false;\n this.videoDestroyed = false;\n\n return;\n }\n\n if (rootEndBehavior === spec.EndBehavior.forward) {\n // forward:合成时间继续往前走,视频也继续播\n return;\n }\n\n // freeze / destroy:合成真正结束,暂停视频\n this.playTriggered = false;\n this.pauseVideoElement();\n }\n\n /**\n * 视频是否已播放到末尾\n */\n private checkVideoEnded (): boolean {\n const videoEndBehavior = this.item.endBehavior;\n\n // restart 行为的视频永远不会\"结束\"(由浏览器原生 loop 处理)\n if (videoEndBehavior === spec.EndBehavior.restart) {\n return false;\n }\n\n return this.video!.currentTime + VideoComponent.threshold >= this.video!.duration;\n }\n\n /**\n * 合成是否已到达结束时间\n */\n private checkCompositionEnded (): boolean {\n const composition = this.item.composition;\n\n if (!composition) {\n return false;\n }\n\n return composition.time + VideoComponent.threshold >= composition.rootItem.duration;\n }\n\n /**\n * 是否应该冻结视频(暂停在当前帧)\n */\n private shouldFreezeVideo (): boolean {\n const isVideoEnded = this.checkVideoEnded();\n const isCompositionEnded = this.checkCompositionEnded();\n\n const videoEndBehavior = this.item.endBehavior;\n const rootEndBehavior = this.item.composition?.rootItem.endBehavior;\n\n // 合成结束且合成行为是 freeze 时冻结视频\n const isCompositionFrozen = isCompositionEnded && rootEndBehavior === spec.EndBehavior.freeze;\n\n // 合成结束且视频行为是 freeze,除合成 restart 外均冻结视频\n const isCompositionEndedForVideo = rootEndBehavior !== spec.EndBehavior.restart && isCompositionEnded;\n const isVideoFrozen = (isVideoEnded || isCompositionEndedForVideo) && videoEndBehavior === spec.EndBehavior.freeze;\n\n return isVideoFrozen || isCompositionFrozen;\n }\n\n /**\n * 是否应该启动视频播放\n */\n private shouldStartVideo (): boolean {\n if (this.playTriggered || !this.canPlayCurrentItem()) {\n return false;\n }\n\n return true;\n }\n\n /**\n * 处理延迟 seek,返回 true 表示本帧已处理 seek,应跳过后续逻辑\n */\n private processPendingSeek (): boolean {\n if (this.pendingSeekTime === null) {\n return false;\n }\n const seekTime = this.pendingSeekTime;\n\n this.pendingSeekTime = null;\n this.performSeek(seekTime);\n\n return true;\n }\n\n /**\n * 检测合成是否发生了 restart,并重置相关状态\n */\n private detectCompositionRestart (): void {\n const videoTime = this.item.time;\n\n if (this.lastVideoTime > 0 && videoTime < this.lastVideoTime) {\n this.playTriggered = false;\n this.videoDestroyed = false;\n this.manualPause = false;\n this.lastVideoTime = -1;\n\n const rootEndBehavior = this.item.composition?.rootItem.endBehavior;\n const videoEndBehavior = this.item.endBehavior;\n\n // 视频 restart 时,浏览器 loop 处理;合成 restart 时,前面函数已经 seek 回 0\n if (rootEndBehavior !== spec.EndBehavior.restart && videoEndBehavior !== spec.EndBehavior.restart) {\n this.pendingSeekTime = 0;\n }\n }\n\n this.lastVideoTime = videoTime;\n }\n\n /**\n * 冻结视频:停止播放,保持当前帧\n */\n private freezeVideo (): void {\n this.playTriggered = false;\n if (!this.video!.paused) {\n this.pauseVideoElement();\n }\n }\n\n /**\n * 确保 restart 行为的视频设置了 loop 标志\n * 手动模式下不自动设置,保持用户设置的值\n */\n private ensureLoopFlag (): void {\n if (this.manualLoop) {\n return;\n }\n\n if (this.item.endBehavior === spec.EndBehavior.restart && !this.video!.loop) {\n this.video!.loop = true;\n }\n }\n\n /**\n * 处理 destroy 结束行为:视频播放到末尾后,seek 回 0 并清空纹理\n * 确保合成 restart 时视频已在第 0 帧,不会闪最后一帧\n */\n private handleDestroyBehavior (): void {\n if (this.videoDestroyed || this.videoSeeking) {\n return;\n }\n\n const isVideoEnded = this.checkVideoEnded();\n\n if (isVideoEnded && this.item.endBehavior === spec.EndBehavior.destroy) {\n this.videoDestroyed = true;\n this.playTriggered = false;\n this.performSeek(0, true);\n }\n }\n\n /**\n * 开始播放视频\n */\n private startVideo (): void {\n if (!this.video || (this.playTriggered && !this.video.paused)) {\n return;\n }\n this.playTriggered = true;\n this.safePlay();\n }\n\n /**\n * 安全地调用 video.play(),串行化调用\n */\n private safePlay (): void {\n if (!this.video) {\n return;\n }\n\n // 已有 play() 在执行中,不重复调用,避免 AbortError\n if (this.playPromise) {\n return;\n }\n\n const promise = this.video.play();\n\n this.playPromise = promise;\n\n void promise\n .then(() => {\n if (this.playPromise === promise) {\n this.playPromise = null;\n }\n this.updatePlaybackRate();\n })\n .catch(error => {\n if (this.playPromise === promise) {\n this.playPromise = null;\n }\n if (error.name === 'AbortError') {\n this.playTriggered = false;\n }\n this.engine.renderErrors.add(error);\n });\n }\n\n /**\n * 暂停底层视频元素\n */\n private pauseVideoElement (): void {\n // gotoAndStop 场景:跳过暂停,等 seek 完成后再暂停\n if (this.isGotoAndStopSeeking) {\n return;\n }\n if (!this.video || this.video.paused) {\n return;\n }\n this.video.pause();\n if (this.playPromise) {\n void this.playPromise.then(() => {\n if (this.video && !this.video.paused) {\n this.video.pause();\n }\n });\n }\n }\n\n /**\n * seek 期间设置 videoSeeking=true,阻止 uploadCurrentVideoFrame 上传旧帧\n * @param time 目标时间\n * @param clearTexture 是否在 seek 期间清空纹理\n * @param isGotoAndStop 是否为 gotoAndStop 场景\n */\n private performSeek (time: number, clearTexture = false, isGotoAndStop = false): void {\n time = this.getClampedSeekTime(time);\n const wasPlaying = !this.video!.paused;\n const isNoopSeek = () => !clearTexture && Math.abs(this.video!.currentTime - time) <= VideoComponent.threshold;\n const finishNoopSeek = () => {\n this.videoSeeking = false;\n this.isGotoAndStopSeeking = false;\n if (isGotoAndStop) {\n this.video!.pause();\n } else if (wasPlaying && !this.manualPause) {\n this.safePlay();\n }\n };\n\n const doSeek = () => {\n if (isNoopSeek()) {\n finishNoopSeek();\n\n return;\n }\n\n this.videoSeeking = true;\n if (clearTexture) {\n this.material.setTexture('_MainTex', this.engine.transparentTexture);\n }\n this.video!.addEventListener('seeked', () => {\n this.videoSeeking = false;\n this.isGotoAndStopSeeking = false;\n if (clearTexture) {\n this.material.setTexture('_MainTex', this.renderer.texture);\n }\n if (this.video) {\n this.renderer.texture.uploadCurrentVideoFrame();\n // gotoAndStop 场景:seek 完成后暂停\n if (isGotoAndStop) {\n this.video.pause();\n } else if (wasPlaying && !this.manualPause) {\n // 如果视频之前在播放(包括 goto 前在播放),seek 完成后恢复播放\n this.safePlay();\n }\n }\n }, { once: true });\n this.video!.currentTime = time;\n };\n\n if (isGotoAndStop) {\n if (wasPlaying) {\n // 视频正在播放,直接 seek\n doSeek();\n } else if (isNoopSeek()) {\n finishNoopSeek();\n } else {\n // 视频暂停,先 play() 再 seek\n this.video!.play().then(() => {\n doSeek();\n }).catch(() => {\n // play 失败时也尝试 seek\n doSeek();\n });\n }\n } else {\n if (wasPlaying) {\n this.video!.pause();\n }\n doSeek();\n }\n }\n\n /**\n * 更新视频播放速率\n * 手动模式下保持用户设置的速率不变,自动模式下根据 engine.speed * composition.speed 计算\n */\n private updatePlaybackRate (): void {\n // 手动模式下不自动更新速率\n if (this.manualPlaybackRate) {\n return;\n }\n\n if (!this.video) {\n return;\n }\n\n const composition = this.item.composition;\n\n if (!composition) {\n return;\n }\n\n const playbackRate = this.engine.speed * composition.speed;\n\n if (this.video.playbackRate !== playbackRate) {\n this.video.playbackRate = playbackRate;\n }\n }\n\n /**\n * 当前 item 可播放的本地视频时间。\n * item.time 在 delay 前为负数,视频时间需要从 0 开始。\n */\n private getItemSeekTime (): number {\n return Math.max(0, this.getItemLocalTime());\n }\n\n /**\n * 获取 item 的本地时间。优先使用 timeline 写入的 item.time,\n * 未写入时使用合成时间和 item delay 做兜底。\n */\n private getItemLocalTime (): number {\n if (this.item.time >= 0) {\n return this.item.time;\n }\n\n const composition = this.item.composition;\n\n if (!composition) {\n return this.item.time;\n }\n\n return composition.time - (this.item.definition.delay ?? 0);\n }\n\n /**\n * 将 seek 目标限制到视频有效时间范围内。\n */\n private getClampedSeekTime (time: number): number {\n const seekTime = Math.max(0, time);\n const duration = this.video?.duration;\n\n if (!duration || !isFinite(duration)) {\n return seekTime;\n }\n\n return Math.min(seekTime, duration);\n }\n\n /**\n * 组件重新启用时将视频时间对齐到 item 本地时间,但不直接触发播放。\n */\n private syncVideoToItemTime (): void {\n if (!this.video) {\n return;\n }\n\n const seekTime = this.getItemSeekTime();\n const clampedSeekTime = this.getClampedSeekTime(seekTime);\n\n if (Math.abs(this.video.currentTime - clampedSeekTime) > VideoComponent.threshold) {\n this.pendingSeekTime = clampedSeekTime;\n }\n }\n\n /**\n * 当前 item 已经进入自己的时间区间,且视频允许自动播放。\n */\n private canPlayCurrentItem (): boolean {\n if (!this.video || !this.isVideoActive || this.getItemLocalTime() < 0) {\n return false;\n }\n\n if (this.manualPause || this.videoDestroyed || this.videoSeeking || this.pendingSeekTime !== null) {\n return false;\n }\n\n return !this.checkVideoEnded();\n }\n\n /**\n * 获取当前视频时长\n */\n getDuration (): number {\n return this.video ? this.video.duration : 0;\n }\n\n /**\n * 获取当前视频播放时刻\n */\n getCurrentTime (): number {\n return this.video ? this.video.currentTime : 0;\n }\n\n /**\n * 设置当前视频播放时刻\n * @param time 目标时间,会被限制在 [0, duration] 范围内\n */\n setCurrentTime (time: number) {\n if (!this.video) {\n return;\n }\n\n const duration = this.video.duration;\n\n // 如果 duration 无效(如视频未加载),直接使用原值\n if (!duration || !isFinite(duration)) {\n this.pendingSeekTime = Math.max(0, time);\n\n return;\n }\n\n this.pendingSeekTime = Math.max(0, Math.min(time, duration));\n }\n\n /**\n * 设置视频是否循环播放,调用后会覆盖合成的结束行为,改为由用户手动控制循环。\n * 调用 {@link resetLoop} 可恢复为由合成结束行为自动控制。\n * @param loop 是否循环播放\n */\n setLoop (loop: boolean) {\n this.manualLoop = true;\n if (this.video) {\n this.video.loop = loop;\n }\n }\n\n /**\n * 重置循环播放为合成自动控制模式\n */\n resetLoop () {\n this.manualLoop = false;\n // 将 video.loop 同步回合成应有的值,避免残留用户手动设置的状态\n if (this.video) {\n this.video.loop = this.item.endBehavior === spec.EndBehavior.restart;\n }\n }\n\n /**\n * 设置视频是否静音\n * @param muted 是否静音\n */\n setMuted (muted: boolean) {\n if (this.video && this.video.muted !== muted) {\n this.video.muted = muted;\n }\n }\n\n /**\n * 设置视频音量\n * @param volume 视频音量\n */\n setVolume (volume: number) {\n if (this.video && this.video.volume !== volume) {\n this.video.volume = volume;\n }\n }\n\n /**\n * 设置当前视频是否为透明视频\n * @param transparent 是否为透明视频\n */\n setTransparent (transparent: boolean): void {\n if (this.transparent === transparent) {\n return;\n }\n if (transparent) {\n this.material.enableMacro('TRANSPARENT_VIDEO', true);\n } else {\n this.material.disableMacro('TRANSPARENT_VIDEO');\n }\n this.transparent = transparent;\n }\n\n /**\n * 设置视频播放速率,调用后会覆盖合成的速率,改为由用户手动控制速率。\n * 调用 {@link resetPlaybackRate} 可恢复为由合成速率自动控制。\n * @param rate 视频播放速率\n */\n setPlaybackRate (rate: number) {\n this.manualPlaybackRate = true;\n if (this.video) {\n this.video.playbackRate = rate;\n }\n }\n\n /**\n * 重置播放速率为合成自动控制模式\n */\n resetPlaybackRate () {\n this.manualPlaybackRate = false;\n }\n\n /**\n * 播放视频,同时取消手动暂停状态\n * @since 2.3.0\n */\n playVideo (): void {\n this.manualPause = false;\n this.startVideo();\n }\n\n /**\n * 手动暂停视频\n * @since 2.3.0\n */\n pauseVideo (): void {\n this.manualPause = true;\n this.pauseVideoElement();\n }\n}\n","import type { Engine } from '@galacean/effects';\nimport { spec } from '@galacean/effects';\n\ninterface AudioSourceInfo {\n source?: AudioBufferSourceNode,\n audioContext?: AudioContext,\n gainNode?: GainNode,\n}\n\nexport interface AudioPlayerOptions {\n endBehavior: spec.EndBehavior,\n duration: number,\n}\n\nexport class AudioPlayer {\n audio?: HTMLAudioElement;\n audioSourceInfo: AudioSourceInfo = {};\n private pendingOffset = 0;\n private isSupportAudioContext = !!window['AudioContext'];\n private options: AudioPlayerOptions = {\n endBehavior: spec.EndBehavior.destroy,\n duration: 0,\n };\n private destroyed = false;\n private started = false;\n private initialized = false;\n private currentVolume = 1;\n\n constructor (\n private engine: Engine,\n audio?: AudioBuffer | HTMLAudioElement,\n ) {\n if (audio) {\n this.setAudioSource(audio);\n }\n }\n\n /**\n * 设置音频资源\n * @param audio - 音频资源\n */\n setAudioSource (audio: AudioBuffer | HTMLAudioElement) {\n if (this.audio || this.audioSourceInfo.source) {\n this.dispose();\n }\n if (audio instanceof AudioBuffer) {\n const audioContext = new AudioContext();\n const gainNode = audioContext.createGain();\n\n gainNode.connect(audioContext.destination);\n\n const source = audioContext.createBufferSource();\n\n source.buffer = audio;\n source.connect(gainNode);\n\n this.audioSourceInfo = {\n source,\n audioContext,\n gainNode,\n };\n } else {\n this.audio = audio;\n }\n if (this.started) {\n this.play();\n }\n }\n\n getCurrentTime (): number {\n if (this.isSupportAudioContext) {\n const { audioContext } = this.audioSourceInfo;\n\n return audioContext?.currentTime || 0;\n } else {\n return this.audio?.currentTime || 0;\n }\n }\n /**\n * 设置音频当前时间\n * WebAudio下设置 this.pendingOffset,后面play时直接从该事件play\n * HTMLAudioElement下直接设置时间\n */\n setCurrentTime (time: number) {\n const t = Math.max(0, time);\n\n if (this.isSupportAudioContext) {\n const upper = this.options.duration && this.options.duration > 0 ? this.options.duration : undefined;\n\n this.pendingOffset = upper ? Math.min(t, upper) : t;\n\n return;\n } else {\n if (this.audio) {\n const dur = Number.isFinite(this.audio.duration) ? this.audio.duration : undefined;\n const clamped = dur ? Math.min(t, dur) : t;\n\n this.audio.currentTime = clamped;\n }\n }\n }\n /**\n * 播放音频\n */\n play (): void {\n if (this.isSupportAudioContext) {\n const { audioContext, source, gainNode } = this.audioSourceInfo;\n\n if (!audioContext || !gainNode) {return;}\n\n const buffer = source?.buffer;\n\n if (!buffer) {return;}\n const maxDuration = this.options.duration && this.options.duration > 0 ? this.options.duration : buffer.duration;\n\n // 保险起见,先停掉旧 source,吞掉异常(旧节点是否成功 stop 不影响后续逻辑)\n // eslint-disable-next-line no-empty\n try { source?.stop(); } catch {}\n\n // AudioBufferSourceNode 是一次性节点,start 后不能二次 start。无论之前是否 start 过,先调用 stop 清理旧节点。\n const newSource = audioContext.createBufferSource();\n\n newSource.buffer = buffer;\n newSource.connect(gainNode);\n\n // 继承旧的播放参数\n newSource.playbackRate.value = source?.playbackRate.value ?? 1;\n\n if (this.options.endBehavior === spec.EndBehavior.restart) {\n newSource.loop = true;\n newSource.loopStart = 0;\n newSource.loopEnd = maxDuration;\n } else {\n newSource.loop = source?.loop ?? false;\n newSource.loopStart = source?.loopStart ?? 0;\n newSource.loopEnd = source?.loopEnd ?? maxDuration;\n }\n this.audioSourceInfo.source = newSource;\n\n if (audioContext.state === 'suspended') {\n audioContext.resume().catch(e => this.engine.renderErrors.add(e));\n }\n\n try {\n newSource.start(0, this.pendingOffset || 0);\n this.pendingOffset = 0;\n this.started = true;\n } catch (e) {\n this.engine.renderErrors.add(e as Error);\n }\n } else {\n if (this.audio) {\n this.audio.loop = this.options.endBehavior === spec.EndBehavior.restart;\n this.audio.play().catch(e => this.engine.renderErrors.add(e));\n this.started = true;\n }\n }\n }\n\n pause (): void {\n if (this.isSupportAudioContext) {\n const { source, audioContext } = this.audioSourceInfo;\n\n if (!audioContext) {\n return;\n }\n if (audioContext.currentTime > 0 && this.started) {\n source?.stop();\n }\n } else {\n this.audio?.pause();\n }\n }\n\n setVolume (volume: number): void {\n if (this.isSupportAudioContext) {\n const { gainNode } = this.audioSourceInfo;\n\n if (gainNode) {\n gainNode.gain.value = volume;\n this.currentVolume = volume;\n }\n } else {\n if (this.audio) {\n this.audio.volume = volume;\n this.currentVolume = volume;\n }\n }\n }\n\n setPlaybackRate (rate: number): void {\n if (this.isSupportAudioContext) {\n const { source } = this.audioSourceInfo;\n\n if (source) {\n source.playbackRate.value = rate;\n }\n } else {\n if (this.audio) {\n this.audio.playbackRate = rate;\n }\n }\n }\n\n setLoop (loop: boolean): void {\n if (this.isSupportAudioContext) {\n const { source } = this.audioSourceInfo;\n\n if (!source) {\n this.engine.renderErrors.add(new Error('Audio source is not found.'));\n } else {\n source.loop = loop;\n }\n } else {\n if (this.audio) {\n this.audio.loop = loop;\n }\n }\n }\n\n setOptions (options: AudioPlayerOptions): void {\n if (this.initialized) {\n return;\n }\n this.options = options;\n this.initialized = true;\n }\n\n setMuted (muted: boolean): void {\n if (this.isSupportAudioContext) {\n const { gainNode } = this.audioSourceInfo;\n const value = muted ? 0 : this.currentVolume;\n\n if (gainNode) {\n gainNode.gain.value = value;\n }\n } else {\n if (this.audio) {\n this.audio.muted = muted;\n }\n }\n }\n\n dispose (): void {\n if (this.destroyed) {\n return;\n }\n if (this.isSupportAudioContext) {\n const { audioContext, source } = this.audioSourceInfo;\n\n if (this.started) {\n source?.stop();\n }\n audioContext?.close().catch(e => {\n this.engine.renderErrors.add(e);\n });\n } else {\n this.audio?.pause();\n }\n this.destroyed = true;\n }\n}\n","import type { Asset } from '@galacean/effects';\nimport { effectsClass, RendererComponent, spec } from '@galacean/effects';\nimport { AudioPlayer } from './audio-player';\n\n@effectsClass(spec.DataType.AudioComponent)\nexport class AudioComponent extends RendererComponent {\n audioPlayer: AudioPlayer;\n private isPlaying = false;\n override onAwake (): void {\n super.onAwake();\n\n this.item.composition?.on('play', (option: { time: number }) => {\n this.audioPlayer.setMuted(false);\n if (this.item.time <= 0) {return;}\n this.audioPlayer.setCurrentTime(this.item.time);\n this.audioPlayer.play();\n this.isPlaying = true;\n });\n\n this.item.composition?.on('pause', () => {\n this.audioPlayer.setMuted(true);\n this.audioPlayer.pause();\n this.isPlaying = false;\n });\n\n this.item.composition?.on('goto', (option: { time: number }) => {\n this.audioPlayer.setMuted(true);\n this.audioPlayer.setCurrentTime(this.item.time);\n });\n }\n\n override onUpdate (dt: number): void {\n super.onUpdate(dt);\n\n const { time, duration, endBehavior } = this.item;\n\n if (time > 0 && this.isPlaying == false) {\n this.audioPlayer.play();\n this.isPlaying = true;\n }\n\n this.audioPlayer.setOptions({\n duration,\n endBehavior,\n });\n }\n\n override fromData (data: spec.AudioComponentData): void {\n super.fromData(data);\n\n const { options } = data;\n const { playbackRate = 1, muted = false, volume = 1 } = options;\n let audio: AudioBuffer | HTMLAudioElement | undefined = undefined;\n\n if (options.audio) {\n const audioAsset = this.engine.findObject<Asset<HTMLAudioElement | AudioBuffer>>(options.audio);\n\n audio = audioAsset.data;\n }\n\n this.audioPlayer = new AudioPlayer(this.engine, audio);\n this.audioPlayer.pause();\n this.setPlaybackRate(playbackRate);\n this.setMuted(muted);\n this.setVolume(volume);\n }\n\n /**\n * 设置音频资源\n * @param audio - 音频资源\n */\n setAudioSource (audio: HTMLAudioElement | AudioBuffer): void {\n this.audioPlayer.setAudioSource(audio);\n }\n\n /**\n * 设置音量\n * @param volume - 音量\n */\n setVolume (volume: number): void {\n this.audioPlayer.setVolume(volume);\n }\n\n /**\n * 获取当前音频的播放时刻\n */\n getCurrentTime (): number {\n return this.audioPlayer.getCurrentTime();\n }\n\n /**\n * 设置是否静音\n * @param muted - 是否静音\n */\n setMuted (muted: boolean): void {\n this.audioPlayer.setMuted(muted);\n }\n\n /**\n * 设置是否循环播放\n * @param loop - 是否循环播放\n */\n setLoop (loop: boolean): void {\n this.audioPlayer.setLoop(loop);\n }\n\n /**\n * 设置播放速率\n * @param rate - 播放速率\n */\n setPlaybackRate (rate: number): void {\n this.audioPlayer.setPlaybackRate(rate);\n }\n\n override onDisable (): void {\n super.onDisable();\n\n this.audioPlayer.pause();\n }\n\n override dispose (): void {\n super.dispose();\n\n this.audioPlayer.dispose();\n }\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger, registerPlugin } from '@galacean/effects';\nimport { VideoLoader } from './video/video-loader';\nimport { AudioLoader } from './audio/audio-loader';\n\nexport * from './video/video-component';\nexport * from './audio/audio-component';\nexport * from './audio/audio-player';\nexport * from './constants';\nexport * from './utils';\n\n/**\n * 插件版本号\n */\nexport const version = __VERSION__;\n\nregisterPlugin('video', VideoLoader);\nregisterPlugin('audio', AudioLoader);\n\nlogger.info(`Plugin multimedia version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 Multimedia 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the Multimedia plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\n );\n}\n"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_async_to_generator","fn","self","args","arguments","apply","err","undefined","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","_is_native_reflect_construct","result","Boolean","valueOf","call","Reflect","construct","_","_construct","Parent","Class","a","push","Constructor","Function","bind","instance","_get_prototype_of","getPrototypeOf","_is_native_function","toString","indexOf","_wrap_native_super","_cache","Map","has","get","set","Wrapper","enumerable","_instanceof","left","right","Symbol","hasInstance","__decorate","decorators","target","desc","c","length","r","getOwnPropertyDescriptor","d","decorate","i","defineProperty","__generator","thisArg","body","label","sent","t","trys","ops","f","y","g","Iterator","next","verb","iterator","n","v","step","op","pop","e","SuppressedError","suppressed","message","Error","name","_assert_this_initialized","ReferenceError","multimediaErrorMessageMap","multimediaErrorDisplayMessageMap","processMultimedia","media","type","options","renderLevel","jobs","map","medium","passRenderLevel","spec","MultimediaType","video","videoURL","getVideoUrl","url","URL","location","href","loadVideo","audio","loadAudio","JSON","stringify","all","checkAutoplayPermission","document","createElement","src","muted","crossOrigin","play","MultimediaError","isSupportAudioContext","audioContext","buffer","decodedData","window","AudioContext","loadBinary","decodeAudioData","Audio","srcObject","addEventListener","load","code","isFunction","captureStackTrace","canPlayHevcCodec","codec","contentType","canPlayType","parseCodec","isCodecValue","isCodecKey","HevcVideoCodec","keys","some","useHevcVideo","hevc","VideoLoader","onAssetsLoadStart","scene","videos","loadedAssets","jsonScene","assets","id","Plugin","AudioLoader","audios","seed","VideoComponent","engine","isVideoActive","transparent","manualPlaybackRate","manualLoop","manualPause","playTriggered","lastVideoTime","videoDestroyed","videoSeeking","pendingSeekTime","isGotoAndStopSeeking","isWaitingForGotoResult","playPromise","eventDisposers","setTexture","input","oldTexture","composition","texture","renderer","item","Texture","fromVideo","textures","forEach","cachedTexture","index","removeTexture","material","source","onAwake","on","handleGoto","handleCompositionPlay","handleCompositionPause","handleCompositionEnd","fromData","data","interaction","startColor","playbackRate","volume","videoAsset","findObject","setVolume","setMuted","endBehavior","definition","EndBehavior","destroy","freeze","loop","restart","enableMacro","setColor","math","Color","setFromArray","onUpdate","dt","readyState","processPendingSeek","detectCompositionRestart","shouldFreezeVideo","freezeVideo","shouldStartVideo","startVideo","updatePlaybackRate","ensureLoopFlag","handleDestroyBehavior","uploadCurrentVideoFrame","onDestroy","dispose","pause","onDisable","pauseVideoElement","onEnable","syncVideoToItemTime","getItemSeekTime","performSeek","checkCompositionEnded","canPlayCurrentItem","paused","safePlay","videoEndBehavior","rootEndBehavior","rootItem","forward","checkVideoEnded","currentTime","threshold","duration","time","isVideoEnded","isCompositionEnded","isCompositionFrozen","isCompositionEndedForVideo","isVideoFrozen","seekTime","videoTime","promise","catch","renderErrors","add","clearTexture","isGotoAndStop","getClampedSeekTime","wasPlaying","isNoopSeek","Math","abs","finishNoopSeek","doSeek","transparentTexture","once","speed","max","getItemLocalTime","delay","isFinite","min","clampedSeekTime","getDuration","getCurrentTime","setCurrentTime","setLoop","resetLoop","setTransparent","disableMacro","setPlaybackRate","rate","resetPlaybackRate","playVideo","pauseVideo","MaskableGraphic","effectsClass","DataType","AudioPlayer","audioSourceInfo","pendingOffset","destroyed","started","initialized","currentVolume","setAudioSource","AudioBuffer","gainNode","createGain","connect","destination","createBufferSource","upper","dur","Number","clamped","maxDuration","stop","newSource","loopStart","loopEnd","state","resume","start","gain","setOptions","close","AudioComponent","isPlaying","option","audioPlayer","audioAsset","RendererComponent","version","registerPlugin","logger","EFFECTS","console"],"mappings":"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"}
|