1# ArkUI子系统Changelog 2 3## cl.arkui.1 Video组件不再默认解析并自动播放拖拽信息中的视频资源 4 5**访问级别** 6 7公开接口 8 9**变更原因** 10 11Video组件默认允许拖入任意视频并自动播放的行为不符合终端用户预期,故需调整该默认规格。 12 13**变更影响** 14 15此变更涉及应用适配。 16 17变更前:Video组件默认解析并自动播放拖拽信息中的视频资源。 18 19变更后:Video组件不会默认解析并自动播放拖拽信息中的视频资源。 20 21**起始API Level** 22 23API 10 24 25**变更发生版本** 26 27从OpenHarmony SDK 5.1.0.47开始。 28 29**变更的接口/组件** 30 31Video组件。 32 33**适配指导** 34 35应用若需要使Video组件支持解析拖入的视频信息并自动播放,可通过如下代码实现: 36 37```ts 38import { unifiedDataChannel, uniformTypeDescriptor } from '@kit.ArkData'; 39 40@Entry 41@Component 42struct Index { 43 @State videoSrc: Resource | string = $rawfile('video1.mp4'); 44 private controller: VideoController = new VideoController(); 45 46 build() { 47 Column() { 48 Video({ 49 src: this.videoSrc, 50 controller: this.controller 51 }) 52 .width('100%') 53 .height(600) 54 .onPrepared(() => { 55 // 在onPrepared回调中执行controller的start方法,确保视频源更换后直接开始播放。 56 this.controller.start(); 57 }) 58 .onDrop((e: DragEvent) => { 59 // 外部视频拖入应用Video组件范围,松手后触发通过onDrop注册的回调。 60 // 在DragEvent中会包含拖入的视频源信息,取出后赋值给状态变量videoSrc即可改变Video的视频源。 61 let record = e.getData().getRecords()[0]; 62 if (record.getType() == uniformTypeDescriptor.UniformDataType.VIDEO) { 63 let videoInfo = record as unifiedDataChannel.Video; 64 this.videoSrc = videoInfo.videoUri; 65 } 66 }) 67 } 68 } 69} 70``` 71 72## cl.arkui.2 使用媒体查询(@ohos.mediaquery)在2in1悬浮窗口监听页面宽度不再额外减去8vp 73 74**访问级别** 75 76公开接口 77 78**变更原因** 79 802in1悬浮窗口下,计算页面宽度在窗口宽度基础上额外减去了8vp,导致页面宽度监听不准确,不符合开发者的预期,故需进行相应调整。 81 82**变更影响** 83 84此变更不涉及应用适配。 85 86变更前:2in1悬浮窗口下,使用mediaQuery监听页面宽度,页面宽度 = 窗口宽度 - 8vp。 87 88变更后:2in1悬浮窗口下,使用mediaQuery监听页面宽度,页面宽度 = 窗口宽度。 89 90**起始API Level** 91 92API 10 93 94**变更发生版本** 95 96从OpenHarmony SDK 5.1.0.47开始。 97 98**变更的接口/组件** 99 100@ohos.mediaquery.d.ts文件中matchMediaSync接口。 101 102**适配指导** 103 104默认行为变更,无需适配。 105 106## cl.arkui.3 CanvasRenderer的shadowColor属性传非法字符串时设置不生效 107 108**访问级别** 109 110公开接口 111 112**变更原因** 113 114shadowColor属性在传入某些非法字符串时,仍能产生阴影效果,与W3C标准不一致。 115 116**变更影响** 117 118| 变更前 | 变更后 | 119| ---------------------------------------- | ---------------------------------------- | 120| CanvasRenderer的shadowColor属性传某些不符合W3C标准的颜色字符串时仍设置生效。<br> | CanvasRenderer的shadowColor属性传某些不符合W3C标准的颜色字符串时设置不生效。<br> | 121 122 123**起始API Level** 124 125API 8 126 127**变更发生版本** 128 129从OpenHarmony SDK 5.1.0.47开始。 130 131**变更的接口/组件** 132 133CanvasRenderingContext2D和OffscreenCanvasRenderingContext2D的shadowColor接口。 134 135**适配指导** 136 137传异常参数行为变更,无需适配。 138设置阴影颜色需要按照规范传入字符串参数: 1391、使用rgb()或rgba()。例:context.shadowColor = 'rgba(255, 0, 0, 255)' 1402、使用十六进制颜色值。例:context.shadowColor = '#FF0000' 141 142**示例** 143 144```ts 145@Entry 146@Component 147struct Demo { 148 private settings: RenderingContextSettings = new RenderingContextSettings(true) 149 private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) 150 151 build() { 152 Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { 153 Canvas(this.context) 154 .width('100%') 155 .height('100%') 156 .onReady(() => { 157 this.context.shadowBlur = 10 158 this.context.shadowOffsetX = 10 159 this.context.shadowOffsetY = 10 160 /** 161 * 变更前:设置生效为蓝色。 162 * 变更后:设置不生效,没有阴影效果。 163 */ 164 this.context.shadowColor = "2024-11-28T07:27:10.607Z" 165 this.context.fillRect(10, 10, 100, 100) 166 }) 167 } 168 .width('100%') 169 .height('100%') 170 } 171} 172``` 173