|
1 | | -import { Combinator, MP4Clip, OffscreenSprite } from '@webav/av-cliper'; |
2 | 1 | import { Radio, Space } from 'antd'; |
3 | 2 | import { useState } from 'react'; |
4 | 3 | // @ts-ignore |
5 | 4 | import { AVProRegister, AVCliper } from './av-pro.umd'; |
6 | 5 | import { CombinatorPlay } from './combinator-player'; |
7 | 6 | import { assetsPrefix } from './utils'; |
8 | 7 |
|
| 8 | +const { Combinator, MP4Clip, OffscreenSprite } = AVCliper; |
| 9 | + |
9 | 10 | const { createCanvasFilter } = await AVProRegister({ |
10 | 11 | licenseV1: |
11 | 12 | 'IH42XoF0U4qLbNSdKVqNRp8PRmWnPG/Na+lcCX6I8H1pIvwXCA8fYk4QGeevXHF5TMy7LMwBRuMKTRVfXU4LdEN93C0SqHbTJdI1xQst+2rrXkmersIktkh40cHbFOjQepWC1iLH3qAyDYQjqHegqK4M3sZ6eaGgOZKO7AGU6k9xdELDmLcXnOIW8OZefHkroWXCbeH5Rv/BE7vJGrheIeky89P+U5TVUvmBfNv8AptLGGZcTDW4NqvZHe8pvN/0WmgbnPuFHl0p3AJAkBWT765nUsC+ez2WvMeMU3UNUEa5CeAYlPv2hFEHlnONspM8btfQiguxp1sPgCZXqv2xeg==', |
@@ -48,6 +49,7 @@ async function createCombinator(filterType: string) { |
48 | 49 | // 创建滤镜函数 |
49 | 50 | const filter = createCanvasFilter(filterType); |
50 | 51 |
|
| 52 | + // @ts-ignore |
51 | 53 | // 使用 tickInterceptor 在每一帧应用滤镜 |
52 | 54 | filterClip.tickInterceptor = async (_, tickRet) => { |
53 | 55 | if (tickRet.video == null) return tickRet; |
@@ -81,7 +83,7 @@ async function createCombinator(filterType: string) { |
81 | 83 | // UI 组件 |
82 | 84 | export default function UI() { |
83 | 85 | const [filterType, setFilterType] = useState<string>(filterTypes[0]); |
84 | | - const [com, setCom] = useState<null | Combinator>(null); |
| 86 | + const [com, setCom] = useState<null | typeof Combinator>(null); |
85 | 87 |
|
86 | 88 | return ( |
87 | 89 | <div> |
|
0 commit comments