@realsee/vreo 1.0.0-alpha.14 → 1.0.0-alpha.17
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/README.md +46 -36
- package/docs/assets/highlight.css +10 -10
- package/docs/assets/main.js +2 -2
- package/docs/assets/search.js +1 -1
- package/docs/classes/Player.AudioLike.html +15 -15
- package/docs/classes/Player.Controller.html +16 -16
- package/docs/classes/Player.Player-1.html +15 -15
- package/docs/classes/Player.VideoAgentMesh.html +54 -54
- package/docs/classes/Player.VideoAgentScene.html +1 -1
- package/docs/demo/assets/{AppReact.e28c26ea.js → AppReact.a3fc45d3.js} +1 -1
- package/docs/demo/assets/{default.d3519aaf.js → default.9985006b.js} +1 -1
- package/docs/demo/assets/{dynamic.8128cfc1.js → dynamic.714b9eb8.js} +1 -1
- package/docs/demo/assets/{examples.abe8af2e.js → examples.1a6f5a2c.js} +1 -1
- package/docs/demo/assets/{index.46a22509.js → index.0ca9e9d3.js} +1 -1
- package/docs/demo/assets/main.7963f418.js +1 -0
- package/docs/demo/assets/{react.3cefbcef.js → react.fca6a967.js} +1 -1
- package/docs/demo/examples.html +2 -2
- package/docs/demo/index-react-dynamic.html +4 -4
- package/docs/demo/index-react.html +4 -4
- package/docs/demo/index.html +3 -3
- package/docs/enums/Player.InfoPanelStyleEnum.html +1 -1
- package/docs/enums/Player.InfoPanelTypeEnum.html +1 -1
- package/docs/enums/Player.PanoEffectEnum.html +1 -1
- package/docs/enums/Player.PanoTagEnum.html +1 -1
- package/docs/enums/Player.PanoTagStyleEnum.html +2 -2
- package/docs/enums/Player.VreoKeyframeEnum.html +12 -12
- package/docs/enums/fivePlugins.CameraMovementEffect.html +1 -1
- package/docs/enums/fivePlugins.Rotation.html +1 -1
- package/docs/index.html +30 -27
- package/docs/interfaces/Player.CustomVreoKeyframeProps.html +1 -1
- package/docs/interfaces/Player.PlayerConfigs.html +3 -3
- package/docs/interfaces/Player.Vertex.html +1 -1
- package/docs/interfaces/Player.VideoAgentMeshOptions.html +3 -3
- package/docs/interfaces/Player.VreoKeyframe.html +1 -1
- package/docs/interfaces/Player.VreoUnit.html +1 -1
- package/docs/interfaces/Player.VreoVideo.html +1 -1
- package/docs/interfaces/fivePlugins.CSS3DRenderPluginExportType.html +3 -3
- package/docs/interfaces/fivePlugins.CameraMovementOptsCallback.html +1 -1
- package/docs/interfaces/fivePlugins.CameraMovementPluginExportType.html +2 -2
- package/docs/interfaces/fivePlugins.ModelTVVideoPluginData.html +1 -1
- package/docs/interfaces/fivePlugins.ModelTVVideoPluginExportType.html +1 -1
- package/docs/interfaces/fivePlugins.ModelTVVideoPluginParameterType.html +1 -1
- package/docs/interfaces/fivePlugins.Vector3Position.html +1 -1
- package/docs/interfaces/react.VreoActionCallbacks.html +6 -6
- package/docs/interfaces/react.VreoProviderProps.html +1 -1
- package/docs/modules/Player.html +16 -16
- package/docs/modules/custom.html +1 -1
- package/docs/modules/fivePlugins.html +3 -3
- package/docs/modules/react.html +1 -1
- package/lib/Player/Controller.js +1 -0
- package/lib/Player/modules/VideoAgent/index.js +1 -1
- package/package.json +1 -1
- package/resources/Player/Controller.ts +1 -0
- package/resources/Player/modules/VideoAgent/index.tsx +1 -1
- package/docs/demo/assets/main.12cb9ce9.js +0 -1
package/docs/index.html
CHANGED
|
@@ -21,24 +21,31 @@
|
|
|
21
21
|
<a href="#安装说明" id="安装说明" style="color: inherit; text-decoration: none;">
|
|
22
22
|
<h2>安装说明</h2>
|
|
23
23
|
</a>
|
|
24
|
-
<
|
|
25
|
-
<
|
|
24
|
+
<ul>
|
|
25
|
+
<li>由于 <code>@realsee/vreo</code> 依赖 <a href="https://unpkg.com/@realsee/five/docs/index.html">Five</a> 和 <a href="https://reactjs.org/">React</a> ,请务必同时安装相关依赖 </li>
|
|
26
|
+
<li>根据项目的包管理器来安装:<pre><code class="hljs language-bash"><span class="hl-0"># pnpm</span><br/><span class="hl-1">pnpm install @realsee/vreo @realsee/five react react-dom --save</span><br/><span class="hl-0"># npm</span><br/><span class="hl-1">npm install @realsee/vreo @realsee/five react react-dom --save</span><br/><span class="hl-0"># yarn</span><br/><span class="hl-1">yarn add @realsee/vreo @realsee/five react react-dom</span>
|
|
26
27
|
</code></pre>
|
|
28
|
+
</li>
|
|
29
|
+
</ul>
|
|
27
30
|
|
|
28
31
|
<a href="#快速上手" id="快速上手" style="color: inherit; text-decoration: none;">
|
|
29
32
|
<h2>快速上手</h2>
|
|
30
33
|
</a>
|
|
31
|
-
<pre><code class="hljs language-jsx"><span class="hl-2">import</span><span class="hl-0"> </span><span class="hl-3">*</span><span class="hl-0"> </span><span class="hl-2">as</span><span class="hl-0"> </span><span class="hl-4">React</span><span class="hl-0"> </span><span class="hl-2">from</span><span class="hl-0"> </span><span class="hl-5">'react'</span><br/><span class="hl-2">import</span><span class="hl-0"> { </span><span class="hl-4">Five</span><span class="hl-0"> } </span><span class="hl-2">from</span><span class="hl-0"> </span><span class="hl-5">'@realsee/five'</span><br/><span class="hl-2">import</span><span class="hl-0"> { </span><span class="hl-4">Player</span><span class="hl-0"> } </span><span class="hl-2">from</span><span class="hl-0"> </span><span class="hl-5">'@realsee/vreo'</span><br/><br/><span class="hl-1">// 创建 Five 实例</span><br/><span class="hl-3">const</span><span class="hl-0"> </span><span class="hl-6">five</span><span class="hl-0"> = </span><span class="hl-3">new</span><span class="hl-0"> </span><span class="hl-7">Five</span><span class="hl-0">({</span><br/><span class="hl-0"> </span><span class="hl-1">/* Five 配置项 */</span><br/><span class="hl-0">})</span><br/><br/><span class="hl-1">// 创建 Player 实例</span><br/><span class="hl-3">const</span><span class="hl-0"> </span><span class="hl-6">vreoplayer</span><span class="hl-0"> = </span><span class="hl-3">new</span><span class="hl-0"> </span><span class="hl-7">Player</span><span class="hl-0">(</span><span class="hl-4">five</span><span class="hl-0">)</span><br/><br/><span class="hl-1">// 异步请求剧本数据</span><br/><span class="hl-3">const</span><span class="hl-0"> </span><span class="hl-6">vreoUnit</span><span class="hl-0"> = </span><span class="hl-2">await</span><span class="hl-0"> </span><span class="hl-7">fetch</span><span class="hl-0">(</span><span class="hl-5">'api/**/**'</span><span class="hl-0">)</span><br/><br/><span class="hl-1">// 加载剧本数据(剧本数据见下文)</span><br/><span class="hl-4">vreoplayer</span><span class="hl-0">.</span><span class="hl-7">load</span><span class="hl-0">(</span><span class="hl-4">vreoUnit</span><span class="hl-0">)</span><br/><br/><span class="hl-1">// 播放</span><br/><span class="hl-4">vreoplayer</span><span class="hl-0">.</span><span class="hl-7">play</span><span class="hl-0">()</span><br/><br/><span class="hl-1">// 暂停</span><br/><span class="hl-4">vreoplayer</span><span class="hl-0">.</span><span class="hl-7">pause</span><span class="hl-0">()</span>
|
|
32
|
-
</code></pre>
|
|
33
34
|
<p>引入样式:</p>
|
|
34
|
-
<pre><code class="hljs language-css"><span class="hl-2">@import</span><span class="hl-
|
|
35
|
+
<pre><code class="hljs language-css"><span class="hl-1"> </span><span class="hl-0">/* @file xxx.css */</span><br/><span class="hl-1"> </span><span class="hl-2">@import</span><span class="hl-1"> </span><span class="hl-3">'@realsee/vreo/stylesheets/default.css'</span><span class="hl-1">;</span>
|
|
36
|
+
</code></pre>
|
|
37
|
+
<p>或</p>
|
|
38
|
+
<pre><code class="hljs language-jsx"><span class="hl-1"> </span><span class="hl-0">/* @file xxx.tsx | xxx.jsx */</span><br/><span class="hl-1"> </span><span class="hl-2">import</span><span class="hl-1"> </span><span class="hl-3">'@realsee/vreo/stylesheets/default.css'</span><span class="hl-1">;</span>
|
|
39
|
+
</code></pre>
|
|
40
|
+
<p>examples:</p>
|
|
41
|
+
<pre><code class="hljs language-tsx"><span class="hl-0">/* @file index.tsx | index.jsx */</span><br/><span class="hl-2">import</span><span class="hl-1"> </span><span class="hl-4">*</span><span class="hl-1"> </span><span class="hl-2">as</span><span class="hl-1"> </span><span class="hl-5">React</span><span class="hl-1"> </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">'react'</span><br/><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-5">Five</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">'@realsee/five'</span><br/><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-5">Player</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">'@realsee/vreo'</span><br/><span class="hl-2">import</span><span class="hl-1"> </span><span class="hl-3">'@realsee/vreo/stylesheets/default.css'</span><span class="hl-1">;</span><br/><br/><span class="hl-0">// 创建 Five 实例</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-7">Five</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-0">/* Five 配置项 */</span><br/><span class="hl-1">})</span><br/><br/><span class="hl-0">// 创建 Player 实例</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">vreoPlayer</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-7">Player</span><span class="hl-1">(</span><span class="hl-5">five</span><span class="hl-1">)</span><br/><br/><span class="hl-0">// 异步请求剧本数据</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">vreoUnit</span><span class="hl-1"> = </span><span class="hl-2">await</span><span class="hl-1"> </span><span class="hl-7">fetch</span><span class="hl-1">(</span><span class="hl-3">'api/**/**'</span><span class="hl-1">)</span><br/><br/><span class="hl-0">// 加载剧本数据(剧本数据见下文)</span><br/><span class="hl-5">vreoPlayer</span><span class="hl-1">.</span><span class="hl-7">load</span><span class="hl-1">(</span><span class="hl-5">vreoUnit</span><span class="hl-1">)</span><br/><br/><span class="hl-0">// 播放</span><br/><span class="hl-5">vreoPlayer</span><span class="hl-1">.</span><span class="hl-7">play</span><span class="hl-1">()</span><br/><br/><span class="hl-0">// 暂停</span><br/><span class="hl-5">vreoPlayer</span><span class="hl-1">.</span><span class="hl-7">pause</span><span class="hl-1">()</span>
|
|
35
42
|
</code></pre>
|
|
36
43
|
|
|
37
44
|
<a href="#react-context-amp-hooks-模式使用" id="react-context-amp-hooks-模式使用" style="color: inherit; text-decoration: none;">
|
|
38
45
|
<h2>React Context & Hooks 模式使用</h2>
|
|
39
46
|
</a>
|
|
40
47
|
<p><strong>Vreo</strong> 支持 <a href="https://reactjs.org/docs/context.html">React Context</a> 与 <a href="https://reactjs.org/docs/hooks-intro.html">Hooks</a> 相配合的模式使用,简单样例如下:</p>
|
|
41
|
-
<pre><code class="hljs language-
|
|
48
|
+
<pre><code class="hljs language-tsx"><span class="hl-0">/* @file App.tsx */</span><br/><br/><span class="hl-2">import</span><span class="hl-1"> </span><span class="hl-4">*</span><span class="hl-1"> </span><span class="hl-2">as</span><span class="hl-1"> </span><span class="hl-5">React</span><span class="hl-1"> </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">'react'</span><br/><span class="hl-2">import</span><span class="hl-1"> </span><span class="hl-4">*</span><span class="hl-1"> </span><span class="hl-2">as</span><span class="hl-1"> </span><span class="hl-5">ReactDOM</span><span class="hl-1"> </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">'react-dom'</span><br/><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-5">Five</span><span class="hl-1">, </span><span class="hl-5">Work</span><span class="hl-1">, </span><span class="hl-5">parseWork</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">'@realsee/five'</span><br/><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-5">createFiveProvider</span><span class="hl-1">, </span><span class="hl-5">FiveCanvas</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">'@realsee/five/react'</span><br/><span class="hl-2">import</span><span class="hl-1"> { </span><span class="hl-5">VreoProvider</span><span class="hl-1">, </span><span class="hl-5">useVreoAction</span><span class="hl-1"> } </span><span class="hl-2">from</span><span class="hl-1"> </span><span class="hl-3">'@realsee/vreo/lib/react'</span><br/><br/><span class="hl-0">// 创建 FiveProvider</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">FiveProvider</span><span class="hl-1"> = </span><span class="hl-7">createFiveProvider</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-0">/* Five 配置项 */</span><br/><span class="hl-1">})</span><br/><br/><span class="hl-0">// 播放组件</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">PlayButton</span><span class="hl-1">: </span><span class="hl-8">React</span><span class="hl-1">.</span><span class="hl-8">FC</span><span class="hl-1"> = () </span><span class="hl-4">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> { </span><span class="hl-6">load</span><span class="hl-1">, </span><span class="hl-6">play</span><span class="hl-1">, </span><span class="hl-6">pause</span><span class="hl-1"> } = </span><span class="hl-7">useVreoAction</span><span class="hl-1">()</span><br/><br/><span class="hl-1"> </span><span class="hl-2">return</span><span class="hl-1"> (</span><br/><span class="hl-1"> </span><span class="hl-9"><></span><br/><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-10">button</span><br/><span class="hl-1"> </span><span class="hl-11">onClick</span><span class="hl-1">=</span><span class="hl-4">{async</span><span class="hl-12"> () </span><span class="hl-4">=></span><span class="hl-12"> {</span><br/><span class="hl-12"> </span><span class="hl-0">// 获取讲房数据</span><br/><span class="hl-12"> </span><span class="hl-4">const</span><span class="hl-12"> </span><span class="hl-6">vreoUnit</span><span class="hl-12"> </span><span class="hl-1">=</span><span class="hl-12"> </span><span class="hl-2">await</span><span class="hl-12"> </span><span class="hl-7">fetch</span><span class="hl-12">(</span><span class="hl-3">'api/**/**'</span><span class="hl-12">)</span><br/><span class="hl-12"> </span><span class="hl-0">// 载入数据</span><br/><span class="hl-12"> </span><span class="hl-2">await</span><span class="hl-12"> </span><span class="hl-7">load</span><span class="hl-12">(</span><span class="hl-5">vreoUnit</span><span class="hl-12">)</span><br/><span class="hl-12"> </span><span class="hl-0">// 播放</span><br/><span class="hl-12"> </span><span class="hl-7">play</span><span class="hl-12">()</span><br/><span class="hl-12"> }</span><span class="hl-4">}</span><br/><span class="hl-1"> </span><span class="hl-9">></span><br/><span class="hl-1"> 讲解</span><br/><span class="hl-1"> </span><span class="hl-9"></</span><span class="hl-10">button</span><span class="hl-9">></span><br/><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-10">button</span><span class="hl-1"> </span><span class="hl-11">onClick</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-12">() </span><span class="hl-4">=></span><span class="hl-12"> </span><span class="hl-7">pause</span><span class="hl-12">()</span><span class="hl-4">}</span><span class="hl-9">></span><span class="hl-1">暂停</span><span class="hl-9"></</span><span class="hl-10">button</span><span class="hl-9">></span><br/><span class="hl-1"> </span><span class="hl-9"></></span><br/><span class="hl-1"> )</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">App</span><span class="hl-1">: </span><span class="hl-8">React</span><span class="hl-1">.</span><span class="hl-8">FC</span><span class="hl-1"> = () </span><span class="hl-4">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">return</span><span class="hl-1"> (</span><br/><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-8">FiveProvider</span><span class="hl-1"> </span><span class="hl-11">initialWork</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-5">work</span><span class="hl-4">}</span><span class="hl-9">></span><br/><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-8">FiveCanvas</span><span class="hl-1"> </span><span class="hl-11">width</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-5">width</span><span class="hl-4">}</span><span class="hl-1"> </span><span class="hl-11">height</span><span class="hl-1">=</span><span class="hl-4">{</span><span class="hl-5">height</span><span class="hl-4">}</span><span class="hl-1"> </span><span class="hl-9">/></span><br/><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-8">VreoProvider</span><span class="hl-9">></span><br/><span class="hl-1"> </span><span class="hl-4">{</span><span class="hl-0">/* React 渲染的其他模块 */</span><span class="hl-4">}</span><br/><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-8">PlayButton</span><span class="hl-1"> </span><span class="hl-9">/></span><br/><span class="hl-1"> </span><span class="hl-9"></</span><span class="hl-8">VreoProvider</span><span class="hl-9">></span><br/><span class="hl-1"> </span><span class="hl-9"></</span><span class="hl-8">FiveProvider</span><span class="hl-9">></span><br/><span class="hl-1"> )</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-5">ReactDOM</span><span class="hl-1">.</span><span class="hl-7">render</span><span class="hl-1">(</span><span class="hl-9"><</span><span class="hl-8">App</span><span class="hl-9">></</span><span class="hl-8">App</span><span class="hl-9">></span><span class="hl-1">, </span><span class="hl-5">document</span><span class="hl-1">.</span><span class="hl-7">getElementById</span><span class="hl-1">(</span><span class="hl-3">'app'</span><span class="hl-1">))</span>
|
|
42
49
|
</code></pre>
|
|
43
50
|
|
|
44
51
|
<a href="#剧本数据结构" id="剧本数据结构" style="color: inherit; text-decoration: none;">
|
|
@@ -50,7 +57,7 @@
|
|
|
50
57
|
</a>
|
|
51
58
|
<p><strong>VreoUnit</strong> 是剧本数据结构的最小单元,用以描述音视频、剧本帧序列等信息。</p>
|
|
52
59
|
<p><strong>VreoUnit</strong> 数据结构样例如下:</p>
|
|
53
|
-
<pre><code class="hljs language-json"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-13">"categoryId"</span><span class="hl-0">: </span><span class="hl-5">"257ac7a8-b00a-4a1b-88b8-76f93362c0dc"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"categoryText"</span><span class="hl-0">: </span><span class="hl-5">"讲房源户型"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"video"</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-13">"duration"</span><span class="hl-0">: </span><span class="hl-14">106278</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"start"</span><span class="hl-0">: </span><span class="hl-14">0</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"end"</span><span class="hl-0">: </span><span class="hl-14">106278</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"url"</span><span class="hl-0">: </span><span class="hl-5">"//url-host/***/xxx.mp4"</span><span class="hl-0"> </span><span class="hl-1">// "url" 如果是空字符串,则以 `AudioLike` 的逻辑进行执行。</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-13">"keyframes"</span><span class="hl-0">: [</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"uuid"</span><span class="hl-0">: </span><span class="hl-5">"ac70621b-4e00-442e-311c-befb5bd3f87f"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"type"</span><span class="hl-0">: </span><span class="hl-5">"PanoTextLabel"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"start"</span><span class="hl-0">: </span><span class="hl-14">27060</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"end"</span><span class="hl-0">: </span><span class="hl-14">42351</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"parsed"</span><span class="hl-0">: </span><span class="hl-3">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"data"</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-13">"text"</span><span class="hl-0">: </span><span class="hl-5">"戏剧人生"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"vertex"</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-13">"x"</span><span class="hl-0">: </span><span class="hl-14">-0.8879207391906447</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"y"</span><span class="hl-0">: </span><span class="hl-14">0.3829881941156301</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"z"</span><span class="hl-0">: </span><span class="hl-14">-1.8068334368800785</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-13">"fontSize"</span><span class="hl-0">: </span><span class="hl-14">16</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"uuid"</span><span class="hl-0">: </span><span class="hl-5">"ec1bbe11-ffee-4fe1-5823-46b6cad4e7d8"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"type"</span><span class="hl-0">: </span><span class="hl-5">"ModelVideo"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"start"</span><span class="hl-0">: </span><span class="hl-14">17452</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"end"</span><span class="hl-0">: </span><span class="hl-14">74901</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"parsed"</span><span class="hl-0">: </span><span class="hl-3">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"data"</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-13">"videoSrc"</span><span class="hl-0">: </span><span class="hl-5">"//url-host/release/web/videos/tv_ads/360/009.mp4"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"videoPosterSrc"</span><span class="hl-0">: </span><span class="hl-5">"//url-host/release/web/videos/posters/002.9203cf99.jpg"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"vertexs"</span><span class="hl-0">: [</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"x"</span><span class="hl-0">: </span><span class="hl-14">0.07203829865103632</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"y"</span><span class="hl-0">: </span><span class="hl-14">0.8215782650149405</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"z"</span><span class="hl-0">: </span><span class="hl-14">-1.7994856093044471</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"x"</span><span class="hl-0">: </span><span class="hl-14">0.08971605109132826</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"y"</span><span class="hl-0">: </span><span class="hl-14">-0.2930481300912484</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"z"</span><span class="hl-0">: </span><span class="hl-14">-1.798372293401237</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"x"</span><span class="hl-0">: </span><span class="hl-14">2.367235599574914</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"y"</span><span class="hl-0">: </span><span class="hl-14">-0.296526676652792</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"z"</span><span class="hl-0">: </span><span class="hl-14">-1.7934272967593008</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"x"</span><span class="hl-0">: </span><span class="hl-14">2.3601990173854315</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"y"</span><span class="hl-0">: </span><span class="hl-14">0.8691239478108612</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"z"</span><span class="hl-0">: </span><span class="hl-14">-1.7949685793090848</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> ]</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"uuid"</span><span class="hl-0">: </span><span class="hl-5">"f9245b1b-ca8d-4a6c-5616-d53cd9cf8c3c"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"type"</span><span class="hl-0">: </span><span class="hl-5">"PanoTag"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"start"</span><span class="hl-0">: </span><span class="hl-14">988</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"end"</span><span class="hl-0">: </span><span class="hl-14">69803</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"parsed"</span><span class="hl-0">: </span><span class="hl-3">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"data"</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-13">"text"</span><span class="hl-0">: </span><span class="hl-5">"一蓑烟雨任平生"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"vertex"</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-13">"x"</span><span class="hl-0">: </span><span class="hl-14">3.4119340861387304</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"y"</span><span class="hl-0">: </span><span class="hl-14">0.1283617853353691</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"z"</span><span class="hl-0">: </span><span class="hl-14">-0.6533418002816742</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> </span><span class="hl-13">"type"</span><span class="hl-0">: </span><span class="hl-5">"Image"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"imgUrl"</span><span class="hl-0">: </span><span class="hl-5">"//url-host/release/web/cat_music.f68fb9bb.gif"</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"uuid"</span><span class="hl-0">: </span><span class="hl-5">"d16138f3-fad1-412e-2df0-f66b61e0b38e"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"type"</span><span class="hl-0">: </span><span class="hl-5">"PanoEffect"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"start"</span><span class="hl-0">: </span><span class="hl-14">2598</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"end"</span><span class="hl-0">: </span><span class="hl-14">7955</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"parsed"</span><span class="hl-0">: </span><span class="hl-3">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"data"</span><span class="hl-0">: {</span><br/><span class="hl-0"> </span><span class="hl-13">"twoVertexs"</span><span class="hl-0">: [</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"x"</span><span class="hl-0">: </span><span class="hl-14">0.04138994383630945</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"y"</span><span class="hl-0">: </span><span class="hl-14">-1.323667318114752</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"z"</span><span class="hl-0">: </span><span class="hl-14">2.7873723200461096</span><br/><span class="hl-0"> },</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-13">"x"</span><span class="hl-0">: </span><span class="hl-14">-2.804123324007684</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"y"</span><span class="hl-0">: </span><span class="hl-14">-1.3249364005914073</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-13">"z"</span><span class="hl-0">: </span><span class="hl-14">3.068840643805892</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> ],</span><br/><span class="hl-0"> </span><span class="hl-13">"effect"</span><span class="hl-0">: </span><span class="hl-5">"Distance"</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> ]</span><br/><span class="hl-0">}</span>
|
|
60
|
+
<pre><code class="hljs language-json"><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-13">"categoryId"</span><span class="hl-1">: </span><span class="hl-3">"257ac7a8-b00a-4a1b-88b8-76f93362c0dc"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"categoryText"</span><span class="hl-1">: </span><span class="hl-3">"讲房源户型"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"video"</span><span class="hl-1">: {</span><br/><span class="hl-1"> </span><span class="hl-13">"duration"</span><span class="hl-1">: </span><span class="hl-14">106278</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"start"</span><span class="hl-1">: </span><span class="hl-14">0</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"end"</span><span class="hl-1">: </span><span class="hl-14">106278</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"url"</span><span class="hl-1">: </span><span class="hl-3">"//url-host/***/xxx.mp4"</span><span class="hl-1"> </span><span class="hl-0">// "url" 如果是空字符串,则以 `AudioLike` 的逻辑进行执行。</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-13">"keyframes"</span><span class="hl-1">: [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"uuid"</span><span class="hl-1">: </span><span class="hl-3">"ac70621b-4e00-442e-311c-befb5bd3f87f"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"type"</span><span class="hl-1">: </span><span class="hl-3">"PanoTextLabel"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"start"</span><span class="hl-1">: </span><span class="hl-14">27060</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"end"</span><span class="hl-1">: </span><span class="hl-14">42351</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"parsed"</span><span class="hl-1">: </span><span class="hl-4">false</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"data"</span><span class="hl-1">: {</span><br/><span class="hl-1"> </span><span class="hl-13">"text"</span><span class="hl-1">: </span><span class="hl-3">"戏剧人生"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"vertex"</span><span class="hl-1">: {</span><br/><span class="hl-1"> </span><span class="hl-13">"x"</span><span class="hl-1">: </span><span class="hl-14">-0.8879207391906447</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"y"</span><span class="hl-1">: </span><span class="hl-14">0.3829881941156301</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"z"</span><span class="hl-1">: </span><span class="hl-14">-1.8068334368800785</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-13">"fontSize"</span><span class="hl-1">: </span><span class="hl-14">16</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"uuid"</span><span class="hl-1">: </span><span class="hl-3">"ec1bbe11-ffee-4fe1-5823-46b6cad4e7d8"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"type"</span><span class="hl-1">: </span><span class="hl-3">"ModelVideo"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"start"</span><span class="hl-1">: </span><span class="hl-14">17452</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"end"</span><span class="hl-1">: </span><span class="hl-14">74901</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"parsed"</span><span class="hl-1">: </span><span class="hl-4">false</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"data"</span><span class="hl-1">: {</span><br/><span class="hl-1"> </span><span class="hl-13">"videoSrc"</span><span class="hl-1">: </span><span class="hl-3">"//url-host/release/web/videos/tv_ads/360/009.mp4"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"videoPosterSrc"</span><span class="hl-1">: </span><span class="hl-3">"//url-host/release/web/videos/posters/002.9203cf99.jpg"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"vertexs"</span><span class="hl-1">: [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"x"</span><span class="hl-1">: </span><span class="hl-14">0.07203829865103632</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"y"</span><span class="hl-1">: </span><span class="hl-14">0.8215782650149405</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"z"</span><span class="hl-1">: </span><span class="hl-14">-1.7994856093044471</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"x"</span><span class="hl-1">: </span><span class="hl-14">0.08971605109132826</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"y"</span><span class="hl-1">: </span><span class="hl-14">-0.2930481300912484</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"z"</span><span class="hl-1">: </span><span class="hl-14">-1.798372293401237</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"x"</span><span class="hl-1">: </span><span class="hl-14">2.367235599574914</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"y"</span><span class="hl-1">: </span><span class="hl-14">-0.296526676652792</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"z"</span><span class="hl-1">: </span><span class="hl-14">-1.7934272967593008</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"x"</span><span class="hl-1">: </span><span class="hl-14">2.3601990173854315</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"y"</span><span class="hl-1">: </span><span class="hl-14">0.8691239478108612</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"z"</span><span class="hl-1">: </span><span class="hl-14">-1.7949685793090848</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> ]</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"uuid"</span><span class="hl-1">: </span><span class="hl-3">"f9245b1b-ca8d-4a6c-5616-d53cd9cf8c3c"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"type"</span><span class="hl-1">: </span><span class="hl-3">"PanoTag"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"start"</span><span class="hl-1">: </span><span class="hl-14">988</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"end"</span><span class="hl-1">: </span><span class="hl-14">69803</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"parsed"</span><span class="hl-1">: </span><span class="hl-4">false</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"data"</span><span class="hl-1">: {</span><br/><span class="hl-1"> </span><span class="hl-13">"text"</span><span class="hl-1">: </span><span class="hl-3">"一蓑烟雨任平生"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"vertex"</span><span class="hl-1">: {</span><br/><span class="hl-1"> </span><span class="hl-13">"x"</span><span class="hl-1">: </span><span class="hl-14">3.4119340861387304</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"y"</span><span class="hl-1">: </span><span class="hl-14">0.1283617853353691</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"z"</span><span class="hl-1">: </span><span class="hl-14">-0.6533418002816742</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-13">"type"</span><span class="hl-1">: </span><span class="hl-3">"Image"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"imgUrl"</span><span class="hl-1">: </span><span class="hl-3">"//url-host/release/web/cat_music.f68fb9bb.gif"</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"uuid"</span><span class="hl-1">: </span><span class="hl-3">"d16138f3-fad1-412e-2df0-f66b61e0b38e"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"type"</span><span class="hl-1">: </span><span class="hl-3">"PanoEffect"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"start"</span><span class="hl-1">: </span><span class="hl-14">2598</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"end"</span><span class="hl-1">: </span><span class="hl-14">7955</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"parsed"</span><span class="hl-1">: </span><span class="hl-4">false</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"data"</span><span class="hl-1">: {</span><br/><span class="hl-1"> </span><span class="hl-13">"twoVertexs"</span><span class="hl-1">: [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"x"</span><span class="hl-1">: </span><span class="hl-14">0.04138994383630945</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"y"</span><span class="hl-1">: </span><span class="hl-14">-1.323667318114752</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"z"</span><span class="hl-1">: </span><span class="hl-14">2.7873723200461096</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-13">"x"</span><span class="hl-1">: </span><span class="hl-14">-2.804123324007684</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"y"</span><span class="hl-1">: </span><span class="hl-14">-1.3249364005914073</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-13">"z"</span><span class="hl-1">: </span><span class="hl-14">3.068840643805892</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> ],</span><br/><span class="hl-1"> </span><span class="hl-13">"effect"</span><span class="hl-1">: </span><span class="hl-3">"Distance"</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> ]</span><br/><span class="hl-1">}</span>
|
|
54
61
|
</code></pre>
|
|
55
62
|
<p><strong>VreoUnit</strong> 的字段说明:</p>
|
|
56
63
|
<ul>
|
|
@@ -102,35 +109,35 @@
|
|
|
102
109
|
<h4>相机运镜</h4>
|
|
103
110
|
</a>
|
|
104
111
|
<p><strong>相机运镜</strong> 控制相机实现镜头位移、旋转、模态切换等模拟如视 3D 空间漫游的能力。</p>
|
|
105
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
112
|
+
<pre><code class="hljs language-ts"><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">CameraMovementData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">effect</span><span class="hl-1">: </span><span class="hl-8">CameraMovementEffect</span><span class="hl-1"> </span><span class="hl-0">// 运镜效果</span><br/><span class="hl-1"> </span><span class="hl-5">mode</span><span class="hl-1">: </span><span class="hl-8">Mode</span><span class="hl-1"> </span><span class="hl-0">// Five.Mode</span><br/><span class="hl-1"> </span><span class="hl-5">panoIndex</span><span class="hl-1">: </span><span class="hl-8">number</span><span class="hl-1"> </span><span class="hl-0">// 目标点位</span><br/><span class="hl-1"> </span><span class="hl-5">loop</span><span class="hl-1">?: </span><span class="hl-8">boolean</span><span class="hl-1"> </span><span class="hl-0">// 是否循环</span><br/><span class="hl-1"> </span><span class="hl-5">rotateSpeed</span><span class="hl-1">?: </span><span class="hl-8">number</span><span class="hl-1"> </span><span class="hl-0">// 旋转速度</span><br/><span class="hl-1"> </span><span class="hl-5">rotation</span><span class="hl-1">?: </span><span class="hl-8">Rotation</span><span class="hl-1"> </span><span class="hl-0">// 旋转方向</span><br/><span class="hl-1">} & </span><span class="hl-8">Partial</span><span class="hl-1"><</span><span class="hl-8">Pose</span><span class="hl-1">> </span><span class="hl-0">// Partial<Pose> 视角信息</span>
|
|
106
113
|
</code></pre>
|
|
107
114
|
|
|
108
115
|
<a href="#弹幕提词" id="弹幕提词" style="color: inherit; text-decoration: none;">
|
|
109
116
|
<h4>弹幕提词</h4>
|
|
110
117
|
</a>
|
|
111
118
|
<p><strong>弹幕提词</strong> 提供语音字幕文本,多用于强调某一句文本。</p>
|
|
112
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
119
|
+
<pre><code class="hljs language-ts"><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">PrompterData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">text</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 文本,建议长度 32(汉字) 以内</span><br/><span class="hl-1">}</span>
|
|
113
120
|
</code></pre>
|
|
114
121
|
|
|
115
122
|
<a href="#空间文本" id="空间文本" style="color: inherit; text-decoration: none;">
|
|
116
123
|
<h4>空间文本</h4>
|
|
117
124
|
</a>
|
|
118
125
|
<p><strong>空间文本</strong> 在如视 3D 模型空间中某一个三维坐标点上展示的一段文本。</p>
|
|
119
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
126
|
+
<pre><code class="hljs language-ts"><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">PanoTextLabelData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">text</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 空间文本</span><br/><span class="hl-1"> </span><span class="hl-5">vertex</span><span class="hl-1">: </span><span class="hl-8">Vertex</span><span class="hl-1"> </span><span class="hl-0">// 三维坐标点</span><br/><span class="hl-1"> </span><span class="hl-5">fontSize</span><span class="hl-1">?: </span><span class="hl-8">number</span><span class="hl-1"> </span><span class="hl-0">// 文本字体大小,默认 16px</span><br/><span class="hl-1">}</span>
|
|
120
127
|
</code></pre>
|
|
121
128
|
|
|
122
129
|
<a href="#信息面板" id="信息面板" style="color: inherit; text-decoration: none;">
|
|
123
130
|
<h4>信息面板</h4>
|
|
124
131
|
</a>
|
|
125
132
|
<p><strong>信息面板</strong> 以弹框或抽屉面板的形式展示图片、音视频等素材内容。</p>
|
|
126
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
133
|
+
<pre><code class="hljs language-ts"><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">InfoPanelData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">type</span><span class="hl-1">: </span><span class="hl-8">InfoPanelTypeEnum</span><span class="hl-1"> </span><span class="hl-0">// 面板类型</span><br/><span class="hl-1"> </span><span class="hl-5">url</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 素材静态资源地址</span><br/><span class="hl-1">}</span>
|
|
127
134
|
</code></pre>
|
|
128
135
|
|
|
129
136
|
<a href="#全景标签" id="全景标签" style="color: inherit; text-decoration: none;">
|
|
130
137
|
<h4>全景标签</h4>
|
|
131
138
|
</a>
|
|
132
139
|
<p><strong>全景标签</strong> 在如视 3D 空间全景游走模态下展示文本、图片、视频等标签内容。全景标签的出现会附带一个生长动画。</p>
|
|
133
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
140
|
+
<pre><code class="hljs language-ts"><span class="hl-4">enum</span><span class="hl-1"> </span><span class="hl-8">PanoTagEnum</span><span class="hl-1"> { </span><span class="hl-0">// 标签类型枚举</span><br/><span class="hl-1"> </span><span class="hl-6">Text</span><span class="hl-1"> = </span><span class="hl-3">'Text'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">Image</span><span class="hl-1"> = </span><span class="hl-3">'Image'</span><span class="hl-1">,</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">PanoTagData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">type</span><span class="hl-1">: </span><span class="hl-8">PanoTagEnum</span><span class="hl-1"> </span><span class="hl-0">// 标签类型</span><br/><span class="hl-1"> </span><span class="hl-5">text</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 文本</span><br/><span class="hl-1"> </span><span class="hl-5">vertex</span><span class="hl-1">: </span><span class="hl-8">Vertex</span><span class="hl-1"> </span><span class="hl-0">// 标签在全景游走模态中的三维坐标点</span><br/><span class="hl-1"> </span><span class="hl-5">imgUrl</span><span class="hl-1">?: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 图片资源地址</span><br/><span class="hl-1">}</span>
|
|
134
141
|
</code></pre>
|
|
135
142
|
|
|
136
143
|
<a href="#全景特效" id="全景特效" style="color: inherit; text-decoration: none;">
|
|
@@ -138,7 +145,7 @@
|
|
|
138
145
|
</a>
|
|
139
146
|
<p><strong>全景特效</strong> 指在如视 3D 空间全景游走模态下执行某些特效。</p>
|
|
140
147
|
<p>目前仅支持测量长度的特效。比如,在全景游走模态下标注出窗户的宽度信息。</p>
|
|
141
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
148
|
+
<pre><code class="hljs language-ts"><span class="hl-4">enum</span><span class="hl-1"> </span><span class="hl-8">PanoEffectEnum</span><span class="hl-1"> { </span><span class="hl-0">// 特效枚举</span><br/><span class="hl-1"> </span><span class="hl-0">// 两点距离</span><br/><span class="hl-1"> </span><span class="hl-6">Distance</span><span class="hl-1"> = </span><span class="hl-3">'Distance'</span><span class="hl-1">,</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">PanoEffectData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">effect</span><span class="hl-1">: </span><span class="hl-8">PanoEffectEnum</span><span class="hl-1"> </span><span class="hl-0">// 特效类型</span><br/><span class="hl-1"> </span><span class="hl-5">twoVertexs</span><span class="hl-1">: [</span><span class="hl-8">Vertex</span><span class="hl-1">, </span><span class="hl-8">Vertex</span><span class="hl-1">] </span><span class="hl-0">// 两个点坐标值</span><br/><span class="hl-1">}</span>
|
|
142
149
|
</code></pre>
|
|
143
150
|
|
|
144
151
|
<a href="#模型特效" id="模型特效" style="color: inherit; text-decoration: none;">
|
|
@@ -159,7 +166,7 @@
|
|
|
159
166
|
<h4>更换全景</h4>
|
|
160
167
|
</a>
|
|
161
168
|
<p><strong>更换全景</strong> 可以动态修改某个点位的全景图片。</p>
|
|
162
|
-
<pre><code class="hljs language-ts"><span class="hl-2">export</span><span class="hl-
|
|
169
|
+
<pre><code class="hljs language-ts"><span class="hl-2">export</span><span class="hl-1"> </span><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">UpdateVRPanoramaData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">_signature</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 签名字段</span><br/><span class="hl-1"> </span><span class="hl-5">allow_hosts</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1">[] </span><span class="hl-0">// 域名白名单</span><br/><span class="hl-1"> </span><span class="hl-5">certificate</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 签名值</span><br/><span class="hl-1"> </span><span class="hl-5">expire_at</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 过期时间</span><br/><span class="hl-1"> </span><span class="hl-0">// 动态场景</span><br/><span class="hl-1"> </span><span class="hl-5">dynamic_scene</span><span class="hl-1">?: {</span><br/><span class="hl-1"> </span><span class="hl-5">images</span><span class="hl-1">: { </span><span class="hl-0">// 切换全景的图片</span><br/><span class="hl-1"> </span><span class="hl-5">index</span><span class="hl-1">: </span><span class="hl-8">number</span><span class="hl-1"> </span><span class="hl-0">// 对应的全景点位</span><br/><span class="hl-1"> </span><span class="hl-5">right</span><span class="hl-1">: </span><span class="hl-8">string</span><br/><span class="hl-1"> </span><span class="hl-5">left</span><span class="hl-1">: </span><span class="hl-8">string</span><br/><span class="hl-1"> </span><span class="hl-5">up</span><span class="hl-1">: </span><span class="hl-8">string</span><br/><span class="hl-1"> </span><span class="hl-5">down</span><span class="hl-1">: </span><span class="hl-8">string</span><br/><span class="hl-1"> </span><span class="hl-5">front</span><span class="hl-1">: </span><span class="hl-8">string</span><br/><span class="hl-1"> </span><span class="hl-5">back</span><span class="hl-1">: </span><span class="hl-8">string</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> [</span><span class="hl-5">key</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1">]: </span><span class="hl-8">any</span><br/><span class="hl-1">}</span>
|
|
163
170
|
</code></pre>
|
|
164
171
|
<p>比如,您可以拍摄某个房间开灯与关灯两个场景的全景,通过动态切换可以营造出全景中开灯、关灯的效果。</p>
|
|
165
172
|
<p>同样的,如果您在同一个位置分别拍摄了早晨、上午、中午、下午、傍晚、深夜的全景图片,就可以营造出该位置在一天中不同时间段的光照效果。</p>
|
|
@@ -168,7 +175,7 @@
|
|
|
168
175
|
<h4>视频广告</h4>
|
|
169
176
|
</a>
|
|
170
177
|
<p><strong>视频广告</strong> 如果在如视 3D 空间模型中有电视、显示器、壁画等这类物品,可以在这些矩形区域播放一段视频。</p>
|
|
171
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
178
|
+
<pre><code class="hljs language-ts"><span class="hl-0">// 四个顶点元组</span><br/><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">QuadrangleVertexs</span><span class="hl-1"> = [</span><span class="hl-8">Vertex</span><span class="hl-1">, </span><span class="hl-8">Vertex</span><span class="hl-1">, </span><span class="hl-8">Vertex</span><span class="hl-1">, </span><span class="hl-8">Vertex</span><span class="hl-1">]</span><br/><br/><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">ModelVideoData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">videoSrc</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 视频素材</span><br/><span class="hl-1"> </span><span class="hl-5">videoPosterSrc</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 视频封面</span><br/><span class="hl-1"> </span><span class="hl-5">vertexs</span><span class="hl-1">: </span><span class="hl-8">QuadrangleVertexs</span><span class="hl-1"> </span><span class="hl-0">// 视频映射在模型中的坐标点</span><br/><span class="hl-1">}</span>
|
|
172
179
|
</code></pre>
|
|
173
180
|
|
|
174
181
|
<a href="#视频特效" id="视频特效" style="color: inherit; text-decoration: none;">
|
|
@@ -176,14 +183,14 @@
|
|
|
176
183
|
</a>
|
|
177
184
|
<p><strong>视频特效</strong> 是基于视频实现的动画效果,视频的每一帧都与 VR 全景位置完全贴合。</p>
|
|
178
185
|
<p>某些变形动画(比如开冰箱动作这类)可以采用视频特效来实现。</p>
|
|
179
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
186
|
+
<pre><code class="hljs language-ts"><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">VideoEffectData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">videoSrc</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// 视频地址</span><br/><span class="hl-1"> </span><span class="hl-5">panoIndex</span><span class="hl-1">: </span><span class="hl-8">number</span><span class="hl-1"> </span><span class="hl-0">// 所处点位</span><br/><span class="hl-1"> </span><span class="hl-5">fov</span><span class="hl-1">: </span><span class="hl-8">number</span><span class="hl-1"> </span><span class="hl-0">// 镜头远近</span><br/><span class="hl-1"> </span><span class="hl-5">direction</span><span class="hl-1">?: </span><span class="hl-8">Vertex</span><span class="hl-1"> </span><span class="hl-0">// 方向向量: {x, y, z} 形式</span><br/><span class="hl-1"> </span><span class="hl-5">vector</span><span class="hl-1">?: </span><span class="hl-8">Pick</span><span class="hl-1"><</span><span class="hl-8">Pose</span><span class="hl-1">, </span><span class="hl-3">'longitude'</span><span class="hl-1"> | </span><span class="hl-3">'latitude'</span><span class="hl-1">> </span><span class="hl-0">// 方向向量: 向量坐标</span><br/><span class="hl-1">}</span>
|
|
180
187
|
</code></pre>
|
|
181
188
|
|
|
182
189
|
<a href="#背景音乐" id="背景音乐" style="color: inherit; text-decoration: none;">
|
|
183
190
|
<h4>背景音乐</h4>
|
|
184
191
|
</a>
|
|
185
192
|
<p><strong>背景音乐</strong> 给剧本添加一段背景音乐(背景音乐会与讲稿音频并行播放)。</p>
|
|
186
|
-
<pre><code class="hljs language-ts"><span class="hl-2">export</span><span class="hl-
|
|
193
|
+
<pre><code class="hljs language-ts"><span class="hl-2">export</span><span class="hl-1"> </span><span class="hl-4">type</span><span class="hl-1"> </span><span class="hl-8">BgMusicData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">url</span><span class="hl-1">: </span><span class="hl-8">string</span><span class="hl-1"> </span><span class="hl-0">// .mp3 背景音乐 CDN 地址</span><br/><span class="hl-1">}</span>
|
|
187
194
|
</code></pre>
|
|
188
195
|
|
|
189
196
|
<a href="#自定义剧本帧行为" id="自定义剧本帧行为" style="color: inherit; text-decoration: none;">
|
|
@@ -191,7 +198,7 @@
|
|
|
191
198
|
</a>
|
|
192
199
|
<p><strong>Vreo</strong> 中的剧本帧行为是内置的,但如果您有强烈的诸如统一 UI 风格类的诉求,不想使用内置剧本逻辑,也可以通过 <code>new Player(five, {keyframeMap: {PanoTag: false}})</code> 来禁用内置剧本帧解析,然后通过监听剧本帧触发事件来补充您自己的剧本 UI 行为。</p>
|
|
193
200
|
<p>比如,禁用全景标签的解析:</p>
|
|
194
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
201
|
+
<pre><code class="hljs language-ts"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">vreoplayer</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-7">Player</span><span class="hl-1">(</span><span class="hl-5">five</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-5">keyframeMap:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">PanoTag:</span><span class="hl-1"> </span><span class="hl-4">false</span><span class="hl-1"> </span><span class="hl-0">/* 禁用了全景标签的解析 */</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">})</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">callback</span><span class="hl-1"> = (</span><span class="hl-5">keyframe</span><span class="hl-1">: </span><span class="hl-8">VreoKeyframe</span><span class="hl-1">) </span><span class="hl-4">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-0">/* 您自己的业务逻辑:全景标签的模块 */</span><br/><span class="hl-1">}</span><br/><span class="hl-0">// 添加监听</span><br/><span class="hl-5">vreoplayer</span><span class="hl-1">.</span><span class="hl-7">on</span><span class="hl-1">(</span><span class="hl-5">VreoKeyframeEnum</span><span class="hl-1">.</span><span class="hl-5">PanoTag</span><span class="hl-1">, </span><span class="hl-5">callback</span><span class="hl-1">)</span><br/><span class="hl-0">// 关闭监听</span><br/><span class="hl-5">vreoplayer</span><span class="hl-1">.</span><span class="hl-7">off</span><span class="hl-1">(</span><span class="hl-5">VreoKeyframeEnum</span><span class="hl-1">.</span><span class="hl-5">PanoTag</span><span class="hl-1">, </span><span class="hl-5">callback</span><span class="hl-1">)</span>
|
|
195
202
|
</code></pre>
|
|
196
203
|
<p>目前仅 DOM 相关的剧本关键帧支持自定义,与 3D 空间模型相关的内容(如:运镜、特效等)尚不支持用户自定义,请采用内置方案。</p>
|
|
197
204
|
|
|
@@ -200,7 +207,7 @@
|
|
|
200
207
|
</a>
|
|
201
208
|
<p>除了默认内置的剧本帧之外,<strong>Vreo</strong> 支持自定义剧本帧。你可以将剧本帧类型设定为 <code>VreoKeyframeEnum.Custom</code>,然后通过监听 <code>vreoplayer.on(VreoKeyframeEnum.Custom, callback)</code> 剧本事件去解析你自己定义的剧本行为。</p>
|
|
202
209
|
<p>此外,你也可以实现个 <code>React</code> 组件,例如:</p>
|
|
203
|
-
<pre><code class="hljs language-ts"><span class="hl-2">export</span><span class="hl-
|
|
210
|
+
<pre><code class="hljs language-ts"><span class="hl-2">export</span><span class="hl-1"> </span><span class="hl-4">function</span><span class="hl-1"> </span><span class="hl-7">YourCustomKeyframe</span><span class="hl-1">(</span><span class="hl-5">props</span><span class="hl-1">: </span><span class="hl-8">CustomVreoKeyframeProps</span><span class="hl-1">) {</span><br/><br/><span class="hl-1"> </span><span class="hl-5">React</span><span class="hl-1">.</span><span class="hl-7">useEffect</span><span class="hl-1">(() </span><span class="hl-4">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">props</span><span class="hl-1">.</span><span class="hl-5">subscribe</span><span class="hl-1">.</span><span class="hl-7">on</span><span class="hl-1">(</span><span class="hl-5">VreoKeyframeEnum</span><span class="hl-1">.</span><span class="hl-5">Custom</span><span class="hl-1">, </span><span class="hl-5">callback</span><span class="hl-1">)</span><br/><br/><span class="hl-1"> </span><span class="hl-2">return</span><span class="hl-1"> () </span><span class="hl-4">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">props</span><span class="hl-1">.</span><span class="hl-5">subscribe</span><span class="hl-1">.</span><span class="hl-7">off</span><span class="hl-1">(</span><span class="hl-5">VreoKeyframeEnum</span><span class="hl-1">.</span><span class="hl-5">Custom</span><span class="hl-1">, </span><span class="hl-5">callback</span><span class="hl-1">)</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }, [])</span><br/><br/><span class="hl-1"> </span><span class="hl-2">return</span><span class="hl-1"> <>...</></span><br/><span class="hl-1">}</span>
|
|
204
211
|
</code></pre>
|
|
205
212
|
<p>然后通过 <code>new Player(five, {customKeyframes: [YourCustomKeyframe]})</code> 配置参数添加进去即可。</p>
|
|
206
213
|
|
|
@@ -214,7 +221,7 @@
|
|
|
214
221
|
<p>浏览器对视频自动播放有严格的限制(播放行为必须由用户触发),<code>@realsee/vreo</code> 内部已经最大限度规避了浏览器对视频自动播放的限制。</p>
|
|
215
222
|
<p>但是规避 <a href="https://developers.weixin.qq.com/community/develop/doc/000e640d77cfa001132a6cb8456c01">微信浏览器中音视频自动播放限制</a> 需要调用 <a href="https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html">微信 JS-SDK</a> 触发<code>WeixinJSBridgeReady</code>事件后才能实现。</p>
|
|
216
223
|
<p>虽然 <code>@realsee/vreo</code> 并不依赖 <a href="https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html">微信 JS-SDK</a> ,但您可以提前创建<code>HTMLVideoElement</code>实例,然后再在初始化<code>vreoplayer</code>实例时通过配置项指定 <code>HTMLVideoElement</code>实例,可参考:</p>
|
|
217
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
224
|
+
<pre><code class="hljs language-ts"><span class="hl-0">// 创建 HTMLVideoElement 实例</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">creatVideo</span><span class="hl-1"> = (): </span><span class="hl-8">HTMLVideoElement</span><span class="hl-1"> </span><span class="hl-4">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">video</span><span class="hl-1"> = </span><span class="hl-5">document</span><span class="hl-1">.</span><span class="hl-7">createElement</span><span class="hl-1">(</span><span class="hl-3">'video'</span><span class="hl-1">)</span><br/><br/><span class="hl-1"> </span><span class="hl-5">video</span><span class="hl-1">.</span><span class="hl-7">setAttribute</span><span class="hl-1">(</span><span class="hl-3">'playsinline'</span><span class="hl-1">, </span><span class="hl-3">'true'</span><span class="hl-1">)</span><br/><span class="hl-1"> </span><span class="hl-5">video</span><span class="hl-1">.</span><span class="hl-7">setAttribute</span><span class="hl-1">(</span><span class="hl-3">'webkit-playsinline'</span><span class="hl-1">, </span><span class="hl-3">'true'</span><span class="hl-1">)</span><br/><span class="hl-1"> </span><span class="hl-5">video</span><span class="hl-1">.</span><span class="hl-7">setAttribute</span><span class="hl-1">(</span><span class="hl-3">'autoplay'</span><span class="hl-1">, </span><span class="hl-3">'true'</span><span class="hl-1">)</span><br/><br/><span class="hl-1"> </span><span class="hl-2">return</span><span class="hl-1"> </span><span class="hl-5">video</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">creatAudio</span><span class="hl-1"> = (): </span><span class="hl-8">HTMLVideoElement</span><span class="hl-1"> </span><span class="hl-4">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">audio</span><span class="hl-1"> = </span><span class="hl-5">document</span><span class="hl-1">.</span><span class="hl-7">createElement</span><span class="hl-1">(</span><span class="hl-3">'audio'</span><span class="hl-1">)</span><br/><br/><span class="hl-1"> </span><span class="hl-5">audio</span><span class="hl-1">.</span><span class="hl-7">setAttribute</span><span class="hl-1">(</span><span class="hl-3">'autoplay'</span><span class="hl-1">, </span><span class="hl-3">'true'</span><span class="hl-1">)</span><br/><br/><span class="hl-1"> </span><span class="hl-2">return</span><span class="hl-1"> </span><span class="hl-5">audio</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-0">// 提前创建 Video</span><br/><span class="hl-0">// 视频特效</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">videoEffect</span><span class="hl-1"> = </span><span class="hl-7">creatVideo</span><span class="hl-1">()</span><br/><span class="hl-0">// 视频广告</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">modelTVVideo</span><span class="hl-1"> = </span><span class="hl-7">creatVideo</span><span class="hl-1">()</span><br/><span class="hl-0">// 视频数字人形象</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">videoInstance</span><span class="hl-1"> = </span><span class="hl-7">creatVideo</span><span class="hl-1">()</span><br/><span class="hl-0">// 无数字人,仅音频</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">audioInstance</span><span class="hl-1"> = </span><span class="hl-7">createAudio</span><span class="hl-1">()</span><br/><br/><span class="hl-0">// 微信限制:需在 WeixinJSBridgeReady 回调中触发一次</span><br/><span class="hl-5">document</span><span class="hl-1">.</span><span class="hl-7">addEventListener</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-3">'WeixinJSBridgeReady'</span><span class="hl-1">,</span><br/><span class="hl-1"> () </span><span class="hl-4">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">videoEffect</span><span class="hl-1">.</span><span class="hl-7">play</span><span class="hl-1">()</span><br/><span class="hl-1"> </span><span class="hl-5">modelTVVideo</span><span class="hl-1">.</span><span class="hl-7">play</span><span class="hl-1">()</span><br/><span class="hl-1"> </span><span class="hl-5">videoInstance</span><span class="hl-1">.</span><span class="hl-7">play</span><span class="hl-1">()</span><br/><span class="hl-1"> </span><span class="hl-5">audioInstance</span><span class="hl-1">.</span><span class="hl-7">play</span><span class="hl-1">()</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">false</span><br/><span class="hl-1">)</span><br/><br/><span class="hl-0">// 创建 Player 实例</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">vreoplayer</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-7">Player</span><span class="hl-1">(</span><span class="hl-5">five</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-5">videos:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">videoEffect</span><span class="hl-1">, </span><span class="hl-0">// 视频特效 时依赖的 HTMLVideoElement</span><br/><span class="hl-1"> </span><span class="hl-5">modelTVVideo</span><span class="hl-1">, </span><span class="hl-0">// 视频广告 时依赖的 HTMLVideoElement</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-5">videoAgentMeshOptions:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">videoInstance</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">audioInstance</span><span class="hl-1">,</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">})</span>
|
|
218
225
|
</code></pre>
|
|
219
226
|
<p>这样,在微信浏览器或微信小程序 <code>WebView</code> 中也能正常使用自动播效果。</p>
|
|
220
227
|
|
|
@@ -228,18 +235,14 @@
|
|
|
228
235
|
</a>
|
|
229
236
|
<p>可以设置 <code>five.imageOptions.size</code> 来降低渲染引擎的贴图尺寸,这样下载速度会变快且内存占用也会降低。
|
|
230
237
|
你也可以配置 <strong>Vreo</strong> 参数来达到类似的效果:</p>
|
|
231
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
238
|
+
<pre><code class="hljs language-ts"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">vreoplayer</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-7">Player</span><span class="hl-1">(</span><span class="hl-5">five</span><span class="hl-1">, { </span><span class="hl-5">imageOptions:</span><span class="hl-1"> { </span><span class="hl-5">size:</span><span class="hl-1"> </span><span class="hl-14">1024</span><span class="hl-1"> } })</span>
|
|
232
239
|
</code></pre>
|
|
233
240
|
|
|
234
241
|
<a href="#提前预载" id="提前预载" style="color: inherit; text-decoration: none;">
|
|
235
242
|
<h4>提前预载</h4>
|
|
236
243
|
</a>
|
|
237
244
|
<p>如果网络不稳定,可以提前预载静态资源,这样播放过程中不会卡顿:</p>
|
|
238
|
-
<pre><code class="hljs language-ts"><span class="hl-
|
|
245
|
+
<pre><code class="hljs language-ts"><span class="hl-0">// 全局预载</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-6">vreoplayer</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-7">Player</span><span class="hl-1">(</span><span class="hl-5">five</span><span class="hl-1">, { </span><span class="hl-5">autoPreload:</span><span class="hl-1"> </span><span class="hl-4">true</span><span class="hl-1"> })</span><br/><br/><span class="hl-0">// 针对某一份剧本数据预载</span><br/><span class="hl-5">vreoplayer</span><span class="hl-1">.</span><span class="hl-7">load</span><span class="hl-1">(</span><span class="hl-5">vreoUnit</span><span class="hl-1">, </span><span class="hl-14">0</span><span class="hl-1">, </span><span class="hl-4">true</span><span class="hl-1">)</span><br/>
|
|
239
246
|
</code></pre>
|
|
240
|
-
|
|
241
|
-
<a href="#api-文档" id="api-文档" style="color: inherit; text-decoration: none;">
|
|
242
|
-
<h2>API 文档</h2>
|
|
243
|
-
</a>
|
|
244
|
-
<p>详细的 API 文档请参考:<a href="https://realsee.js.org/vreo/index.html">Vreo API</a> 。</p>
|
|
247
|
+
<p>Enjoy it!</p>
|
|
245
248
|
</div></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class="current"><a href="modules.html">Modules</a></li><li class=" tsd-kind-module"><a href="modules/Player.html">Player</a></li><li class=" tsd-kind-module"><a href="modules/custom.html">custom</a></li><li class=" tsd-kind-module"><a href="modules/fivePlugins.html">five<wbr/>Plugins</a></li><li class=" tsd-kind-module"><a href="modules/react.html">react</a></li></ul></nav></div></div></div><footer class=""><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li><li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li><li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li><li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="overlay"></div><script src="assets/main.js"></script></body></html>
|