网站建设英文文献推广的十种方式
创建项目:
项目需求:要实现的页面效果
使用相对布局(Relative):
所需图片资源需要请点击我https://download.csdn.net/download/m0_73992525/90009094?spm=1001.2014.3001.5503
修改默认启动页面
此时应用启动默认加载首页Index.ets,要将其修改于一下,让其默认加载‘全屏播放页面’
在“FullscreePlay”页面即将显示时,将屏幕横屏过来
1、将屏幕设置为全屏
设置全屏前:
设置全屏后:
前后对比:
2、将屏幕设置为横屏
内容方面:
首选相对布局:
相对容器的使用方法:
相对布局官方指导文档点我!
设置锚点
做微调的方式:
- 使用margin(外边距)做微调,会影响周围兄弟元素
- 使用offset,不会影响周围的兄弟元素,起点为自己的默认设置,移走后,不释放所占的空间
- 使用position(绝对定位)--- 起点为父容器的左上角,移走后释放所占的空间
使用Video
1、静态页面设计:
背景视频
先用Row代替,设置背景颜色
播放/暂停按钮
顶部的后退按钮+标题+更多
底部播放控制条
注意:progress默认宽度为100%,会导致一行内容溢出,使用layoutweight()布局权重,此时为收缩
添加小圆饼(在进度条上)
相对容器会随着页面滚动而滚动,stack(层叠布局不会随着页面滚动而滚动!)
progress进度条与小圆饼是一起的,所以要在一个容器中,可用将他们两个放入一个容器,用Row更简单!
记住:此时进度条的权重就不是加给Progress,而是加给外层的Row组件。
如何调整小圆饼位置:
做微调的方式:
- 使用margin(外边距)做微调,会影响周围兄弟元素
- 使用offset,不会影响周围的兄弟元素
使用position(绝对定位)
最外层背景颜色改为黑色:
使用position更合适,可以使其向上走一点
完整代码:
// 底部的播放控制条Row({space:15}){// 进行时长Text('03:23').fontColor('#fff')// 进度条Row(){// 进度条Progress({value:50}).backgroundColor('#fff') //背景色,未进行的进度条颜色.color('#E89E42') //进行过的进度条颜色// 小圆饼Row().width(20).height(20).borderRadius(50).backgroundColor('#fff')// .offset({x:-60,y:0}) //①margin②offset(起点为自己的默认位置)③position.position({x:0,y:-8})}.layoutWeight(1)
最
静态页面基本完成:
完整代码:
import { window } from '@kit.ArkUI'@Entry
@Component
struct Demo1 {async aboutToAppear(){let w = await window.getLastWindow(getContext())w.setWindowLayoutFullScreen(true)w.setPreferredOrientation(window.Orientation.LANDSCAPE)}build() {RelativeContainer(){//最底部视频Row(){}.width('100%').height('100%')// .backgroundColor('#000')// 顶部的后退按钮+标题+更多Row(){// 返回按钮Image('/images/back.svg').width(9)// 文本Text('Axure RP9教程:手把手教你制作交互案例').fontColor('#fff').layoutWeight(1) //布局权重为1,占用剩余 所有的剩余空间.margin({left:20})// 更多按钮Image('/images/more.svg').width(20).fillColor('#fff')}.width('100%').padding({left:20,right:20,top:20})// 播放/暂停按钮Image('/images/play2.svg').width(50).height(50).alignRules({middle:{anchor:'__container__',align:HorizontalAlign.Center},center:{anchor:'__container__',align:VerticalAlign.Center}})// 底部的播放控制条Row({space:15}){// 进行时长Text('03:23').fontColor('#fff')// 进度条Row(){// 进度条Progress({value:50}).backgroundColor('#fff') //背景色,未进行的进度条颜色.color('#E89E42') //进行过的进度条颜色// 小圆饼Row().width(20).height(20).borderRadius(50).backgroundColor('#fff')// .offset({x:-60,y:0}) //①margin②offset(起点为自己的默认位置)③position.position({x:0,y:-8})}.layoutWeight(1)// 总时长Text('05:31').fontColor('#fff')// 清晰度Text('标清').fontColor('#fff')//收缩Image('/images/zoomin.svg').width(15)}.width('100%').padding({left:20,right:20,bottom:20}).alignRules({bottom:{anchor:'__container__',align:VerticalAlign.Bottom}})}.height('100%').width('100%').backgroundColor('#fdd')}
}
2、动态页面设计:
(1)最底部的视频播放
Video组件官方文档,想看点我!
video相关属性想看点我
1、videooptions对象
2、要想视频能够播放需要申请权限
3、解决默认显示video组件中自带的播放灯等按钮
使用属性
.controls(false) //是否显示默认提供的播放组件
解决默认显示video组件中自带的播放灯等按钮
4、video组件天然不支持后台播放
5、文字无法完全显示,宽高比不一致!
objectfit属性
imagefix枚举类型
(2)控制其播放暂停按钮
(3)获得“播放总时长”和“播放总进度”
1、获取播放总时长
2、获取播放总进度:
3、将“播放总时长”和“播放总进度”的时间打印出来
将原本固定静态的文本框,用“播放总时长”和“播放总进度”替换为状态变量!
(4)进度条随进度条改变
1、进度条进度
2、小圆饼
(5)提供视频回放的进度(可以在任一点播放)
问题:
①没法进入后台播放
②视频播放时长单位为秒,进度条一秒钟才能走一步,太慢了。
③video无法实现弹幕效果
video只能做一些简单的视频播放。
video不能在视频中放一些复杂的东西(追加在视频上的内容,如弹幕、礼物),做不了网络直播
要想实现------》用AVPlayer
使用AVPlayer
AVPlayer是对象,不是页面中的UI组件
开发步骤:
① 调用createAVPlayer()创建AVPlayer实例,初始化进入idle状态
把video换掉,换用一个可以播放视频的组件Xcomponent(可理解为一个画布,画布可以绘制任何类型,
都用XComponent例如:
像绘制月牙形的按钮,就需要自己绘制。
游戏领域
美颜相机,带一个头饰,周围有东西,将拍的东西做绘图处理,就需要xcomponnet。
视频播放,想实现弹幕等就需要Xcomponent)
文档中心
先删除video组件
添加Xcomponent组件
创建AVPlayer
解决方式:
② 设置业务需要的监听事件,搭配全流程场景使用,如:stateChange、error等
创建监听事件 .on
③ 设置资源:设置属性url,AVPlayer进入initialized状态
视频播放来源可能是如下情形:
1.本地资源播放:必须确认资源文件可用,并使用应用沙箱路径访问对应资源
2. 网络播放路径:需声明权限 ohos.permission.INTERNET
3. HAP包中的资源路径:使用ResourceManager.getRawFd打开HAP资源文件描述符
只有指定URL,才能使状态机发生改变
④ 设置窗口:获取并设置属性SurfaceID,用于设置显示画面;应用需要从XComponent组件获取surfaceID
⑤ 准备播放(prepared就绪态):调用prepare(),AVPlayer进入prepared状态,此时可以获取duration(总时长),设置缩放模式、音量等
⑥ 视频播控(playing播放态):播放play(),暂停pause(),跳转seek(),停止stop() 等操作
进入播放状态: