Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
csssp-xcx-h5
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
劳广强
csssp-xcx-h5
Commits
e761352d
提交
e761352d
authored
1月 10, 2023
作者:
杨斌基
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(随手拍详情): iOS 不能全屏预览视频
上级
61c90f71
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
38 行增加
和
2 行删除
+38
-2
index.scss
pages/mine-picture-detail/index.scss
+2
-0
index.vue
pages/mine-picture-detail/index.vue
+36
-2
没有找到文件。
pages/mine-picture-detail/index.scss
浏览文件 @
e761352d
...
...
@@ -79,6 +79,8 @@
.upload_img
{
width
:
0
;
height
:
0
;
// width: 100%;
// height: 100%;
//width: 168rpx;
//height: 168rpx;
border-radius
:
16rpx
;
...
...
pages/mine-picture-detail/index.vue
浏览文件 @
e761352d
...
...
@@ -15,7 +15,7 @@
<view
class=
"photo_item"
v-for=
"(val, index) in mediaList"
:key=
"val.id"
@
click=
"previewVideo(val, index)"
>
<image
v-if=
"val.type === 'image'"
mode=
"aspectFill"
:src=
"val.url"
style=
"display: block; width: 168rpx; height: 168rpx; border-radius: 16rpx"
/>
<view
v-else
class=
"play-wrapper"
>
<video
:
id=
"`myVideo$
{index}`" class="upload_img" :src="val.url
" />
<video
:
controls=
"video.fullscreen"
:object-fit=
"videoFit"
:id=
"`myVideo$
{index}`" class="upload_img" :src="val.url" @fullscreenchange="onVideoFullscreenChange
" />
<image
src=
"/static/icon/ic_sj_bf@2x.png"
mode=
"aspectFill"
class=
"play-icon"
/>
</view>
</view>
...
...
@@ -81,8 +81,17 @@ export default {
photoList
:
[],
mediaList
:
[],
photoDetail
:
[],
video
:
{
ctx
:
null
,
fullscreen
:
false
}
};
},
computed
:
{
videoFit
()
{
return
this
.
video
.
fullscreen
?
'contain'
:
'cover'
}
},
onLoad
(
query
)
{
this
.
query
=
query
;
this
.
fetchPhotoDetail
();
...
...
@@ -123,7 +132,13 @@ export default {
// 预览视频
previewVideo
(
item
,
index
)
{
if
(
item
.
type
===
'video'
)
{
this
.
mediaList
[
index
].
videoContext
.
requestFullScreen
();
// this.mediaList[index].videoContext.requestFullScreen();
const
ctx
=
this
.
video
.
ctx
=
uni
.
createVideoContext
(
`myVideo
${
index
}
`
)
ctx
.
play
()
// HACK: iOS 需要延迟一下才能全屏
setTimeout
(()
=>
{
ctx
.
requestFullScreen
()
},
uni
.
$u
.
os
()
===
'ios'
?
300
:
0
)
}
if
(
item
.
type
===
'image'
)
{
uni
.
previewImage
({
...
...
@@ -131,10 +146,29 @@ export default {
});
}
},
onVideoFullscreenChange
(
e
)
{
const
{
fullScreen
}
=
e
.
detail
this
.
video
.
fullscreen
=
fullScreen
if
(
!
fullScreen
)
{
this
.
video
.
ctx
.
pause
()
}
}
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
@import
'index.scss'
;
::v-deep
.uni-video-container
{
// iOS 要在 video 父元素上设置才生效
border-radius
:
16rpx
;
}
// HACK: 上面的 :controls="false" 不生效
::v-deep
.uni-video-cover
{
display
:
none
;
}
</
style
>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论