|
1 | 1 | # LivePhoto 实况照片
|
2 | 2 |
|
3 |
| -基于 video 和 image 实现的实况照片组件,支持长按播放视频、自定义样式、事件监听等功能。用户可以通过长按图片来播放对应的视频内容,模拟 iOS Live Photo 的效果。 |
| 3 | +基于 video 和 image 实现的实况照片组件,支持长按播放视频、自动播放、自定义样式、事件监听等功能。用户可以通过长按图片来播放对应的视频内容,模拟 iOS Live Photo 的效果。 |
4 | 4 |
|
5 | 5 | ## 基本用法
|
6 | 6 |
|
|
9 | 9 | ```vue
|
10 | 10 | <up-live-photo
|
11 | 11 | video-src="https://sample-videos.com/zip/10/mp4/SampleVideo_360x240_1mb.mp4"
|
12 |
| - image-src="https://picsum.photos/400/300?random=1" |
| 12 | + src="https://picsum.photos/400/300?random=1" |
13 | 13 | width="300"
|
14 | 14 | height="200"
|
15 | 15 | radius="12"
|
|
23 | 23 | ```vue
|
24 | 24 | <up-live-photo
|
25 | 25 | video-src="https://sample-videos.com/zip/10/mp4/SampleVideo_360x240_1mb.mp4"
|
26 |
| - image-src="https://picsum.photos/400/300?random=1" |
| 26 | + src="https://picsum.photos/400/300?random=1" |
27 | 27 | width="300"
|
28 | 28 | height="200"
|
29 | 29 | :radius="20"
|
30 | 30 | />
|
31 | 31 | ```
|
32 | 32 |
|
33 |
| -## 不同尺寸 |
| 33 | +## 自动播放 |
34 | 34 |
|
35 |
| -支持设置不同的宽度和高度。 |
| 35 | +通过 `autoplay` 属性启用自动播放模式,视频会自动开始播放,播放结束后仍可手动交互。 |
36 | 36 |
|
37 | 37 | ```vue
|
38 |
| -<!-- 小尺寸 --> |
39 | 38 | <up-live-photo
|
40 | 39 | video-src="https://sample-videos.com/zip/10/mp4/SampleVideo_360x240_1mb.mp4"
|
41 |
| - image-src="https://picsum.photos/400/300?random=1" |
42 |
| - width="120" |
43 |
| - height="80" |
44 |
| - radius="8" |
45 |
| -/> |
46 |
| -
|
47 |
| -<!-- 中尺寸 --> |
48 |
| -<up-live-photo |
49 |
| - video-src="https://sample-videos.com/zip/10/mp4/SampleVideo_360x240_1mb.mp4" |
50 |
| - image-src="https://picsum.photos/400/300?random=1" |
51 |
| - width="180" |
52 |
| - height="120" |
53 |
| - radius="12" |
54 |
| -/> |
55 |
| -
|
56 |
| -<!-- 大尺寸 --> |
57 |
| -<up-live-photo |
58 |
| - video-src="https://sample-videos.com/zip/10/mp4/SampleVideo_360x240_1mb.mp4" |
59 |
| - image-src="https://picsum.photos/400/300?random=1" |
60 |
| - width="240" |
61 |
| - height="160" |
62 |
| - radius="16" |
63 |
| -/> |
64 |
| -``` |
65 |
| - |
66 |
| -## 自定义提示文本 |
67 |
| - |
68 |
| -通过 `hint-text` 属性设置自定义的长按提示文本。 |
69 |
| - |
70 |
| -```vue |
71 |
| -<up-live-photo |
72 |
| - video-src="https://sample-videos.com/zip/10/mp4/SampleVideo_360x240_1mb.mp4" |
73 |
| - image-src="https://picsum.photos/400/300?random=1" |
| 40 | + src="https://picsum.photos/400/300?random=1" |
74 | 41 | width="300"
|
75 | 42 | height="200"
|
76 | 43 | radius="12"
|
77 |
| - hint-text="按住播放动态效果" |
| 44 | + :autoplay="true" |
78 | 45 | />
|
79 | 46 | ```
|
80 | 47 |
|
81 |
| -## 隐藏指示器和提示 |
| 48 | +## 隐藏指示器 |
82 | 49 |
|
83 |
| -通过 `show-indicator` 和 `show-hint` 属性控制指示器和提示的显示。 |
| 50 | +通过 `show-indicator` 属性控制指示器的显示。 |
84 | 51 |
|
85 | 52 | ```vue
|
86 | 53 | <up-live-photo
|
87 | 54 | video-src="https://sample-videos.com/zip/10/mp4/SampleVideo_360x240_1mb.mp4"
|
88 |
| - image-src="https://picsum.photos/400/300?random=1" |
| 55 | + src="https://picsum.photos/400/300?random=1" |
89 | 56 | width="300"
|
90 | 57 | height="200"
|
91 | 58 | radius="12"
|
92 | 59 | :show-indicator="false"
|
93 |
| - :show-hint="false" |
94 | 60 | />
|
95 | 61 | ```
|
96 | 62 |
|
|
101 | 67 | ```vue
|
102 | 68 | <up-live-photo
|
103 | 69 | video-src="https://sample-videos.com/zip/10/mp4/SampleVideo_360x240_1mb.mp4"
|
104 |
| - image-src="https://picsum.photos/400/300?random=1" |
| 70 | + src="https://picsum.photos/400/300?random=1" |
105 | 71 | width="300"
|
106 | 72 | height="200"
|
107 | 73 | radius="12"
|
108 | 74 | @press-start="onPressStart"
|
109 | 75 | @press-end="onPressEnd"
|
110 | 76 | @video-play="onVideoPlay"
|
111 | 77 | @video-pause="onVideoPause"
|
| 78 | + @video-loaded="onVideoLoaded" |
| 79 | + @video-progress="onVideoProgress" |
112 | 80 | />
|
113 | 81 | ```
|
114 | 82 |
|
|
121 | 89 | <up-live-photo
|
122 | 90 | ref="livePhotoRef"
|
123 | 91 | video-src="https://sample-videos.com/zip/10/mp4/SampleVideo_360x240_1mb.mp4"
|
124 |
| - image-src="https://picsum.photos/400/300?random=1" |
| 92 | + src="https://picsum.photos/400/300?random=1" |
125 | 93 | width="300"
|
126 | 94 | height="200"
|
127 | 95 | radius="12"
|
@@ -156,30 +124,40 @@ function resetComponent() {
|
156 | 124 | | 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
157 | 125 | |-------------------|--------------------------|-------------------|------------------|--------|
|
158 | 126 | | video-src | 视频源地址 | string | - | - |
|
159 |
| -| image-src | 静态图片源地址 | string | - | - | |
| 127 | +| src | 静态图片源地址 | string | - | - | |
160 | 128 | | width | 组件宽度 | number \| string | '100%' | - |
|
161 | 129 | | height | 组件高度 | number \| string | '100%' | - |
|
162 | 130 | | radius | 圆角大小 | number \| string | 0 | - |
|
163 | 131 | | custom-style | 自定义样式 | string | '' | - |
|
164 | 132 | | custom-class | 自定义类名 | string | '' | - |
|
165 |
| -| mode | 图片填充模式 | string | 'aspectFill' | - | |
| 133 | +| mode | 图片填充模式 | string | 'scaleToFill' | - | |
166 | 134 | | show-indicator | 是否显示Live Photo指示器 | boolean | true | - |
|
167 |
| -| show-hint | 是否显示长按提示 | boolean | true | - | |
168 |
| -| hint-text | 提示文本 | string | '长按查看实况' | - | |
| 135 | +| autoplay | 是否自动播放 | boolean | false | - | |
169 | 136 | | enable-vibration | 是否启用振动反馈 | boolean | true | - |
|
170 | 137 | | muted | 是否静音播放 | boolean | true | - |
|
| 138 | +| lazy-load | 是否懒加载图片 | boolean | true | - | |
| 139 | +| enable-preview | 是否启用图片预览 | boolean | false | - | |
| 140 | +| preview-src | 预览图片地址 | string | '' | - | |
| 141 | +| placeholder-src | 占位图片地址 | string | '' | - | |
| 142 | +| filter | 图片滤镜 | number \| string | '' | - | |
| 143 | +| delay | 加载延迟时间 | number | 0 | - | |
| 144 | +| min-height | 最小高度 | number \| string | '200rpx' | - | |
| 145 | +| round | 是否为圆形 | boolean | false | - | |
171 | 146 |
|
172 | 147 | ## Events
|
173 | 148 |
|
174 |
| -| 事件名 | 说明 | 回调参数 | |
175 |
| -|-------------|----------------|----------| |
176 |
| -| video-play | 视频开始播放 | - | |
177 |
| -| video-pause | 视频暂停播放 | - | |
178 |
| -| press-start | 开始长按 | - | |
179 |
| -| press-end | 结束长按 | - | |
180 |
| -| video-ended | 视频播放结束 | - | |
181 |
| -| image-load | 图片加载成功 | - | |
182 |
| -| image-error | 图片加载失败 | - | |
| 149 | +| 事件名 | 说明 | 回调参数 | |
| 150 | +|----------------|----------------|-------------------| |
| 151 | +| video-play | 视频开始播放 | - | |
| 152 | +| video-pause | 视频暂停播放 | - | |
| 153 | +| press-start | 开始长按 | - | |
| 154 | +| press-end | 结束长按 | - | |
| 155 | +| video-ended | 视频播放结束 | - | |
| 156 | +| video-loaded | 视频加载完成 | - | |
| 157 | +| video-progress | 视频加载进度 | progress: number | |
| 158 | +| load | 图片加载成功 | event | |
| 159 | +| error | 图片加载失败 | event | |
| 160 | +| click | 图片点击事件 | event | |
183 | 161 |
|
184 | 162 | ## Methods
|
185 | 163 |
|
|
0 commit comments