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 当Image组件的draggable接口接收到异常值时,其默认值将由false更改为true 107 108**访问级别** 109 110公开接口 111 112**变更原因** 113 114当Image组件的draggable接口接收到异常参数,如undefined或null时,其默认值将从false更改为true,从而默认启用拖拽功能。 115 116**变更影响** 117 118此变更涉及应用适配。 119 120变更前:Image组件的draggable接口默认值为true,当传入异常值时,draggable为false,Image组件不可拖拽。 121 122变更后:Image组件的draggable接口默认值为true,当传入异常值时,draggable为true,Image组件可拖拽。 123 124**起始API Level** 125 126API 9 127 128**变更发生版本** 129 130从OpenHarmony SDK 5.1.0.47开始。 131 132**变更的接口/组件** 133 134Image组件draggable接口。 135 136**适配指导** 137 138如果为Image组件设置了可拖拽(draggable)接口并传入了异常值,想要保持该组件不可拖拽,应将draggable设置为false。 139 140示例: 141 142```ts 143@Entry 144@Component 145struct Index { 146 build() { 147 Column() { 148 Image($r("app.media.startIcon")) 149 .draggable(undefined) 150 } 151 .height('100%') 152 .width('100%') 153 } 154} 155``` 156 157## cl.arkui.4 CanvasRenderer的shadowColor属性传非法字符串时设置不生效 158 159**访问级别** 160 161公开接口 162 163**变更原因** 164 165shadowColor属性在传入某些非法字符串时,仍能产生阴影效果,与W3C标准不一致。 166 167**变更影响** 168 169| 变更前 | 变更后 | 170| ---------------------------------------- | ---------------------------------------- | 171| CanvasRenderer的shadowColor属性传某些不符合W3C标准的颜色字符串时仍设置生效。<br> | CanvasRenderer的shadowColor属性传某些不符合W3C标准的颜色字符串时设置不生效。<br> | 172 173 174**起始API Level** 175 176API 8 177 178**变更发生版本** 179 180从OpenHarmony SDK 5.1.0.47开始。 181 182**变更的接口/组件** 183 184CanvasRenderingContext2D和OffscreenCanvasRenderingContext2D的shadowColor接口。 185 186**适配指导** 187 188传异常参数行为变更,无需适配。 189设置阴影颜色需要按照规范传入字符串参数: 1901、使用rgb()或rgba()。例:context.shadowColor = 'rgba(255, 0, 0, 255)' 1912、使用十六进制颜色值。例:context.shadowColor = '#FF0000' 192 193**示例** 194 195```ts 196@Entry 197@Component 198struct Demo { 199 private settings: RenderingContextSettings = new RenderingContextSettings(true) 200 private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) 201 202 build() { 203 Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { 204 Canvas(this.context) 205 .width('100%') 206 .height('100%') 207 .onReady(() => { 208 this.context.shadowBlur = 10 209 this.context.shadowOffsetX = 10 210 this.context.shadowOffsetY = 10 211 /** 212 * 变更前:设置生效为蓝色。 213 * 变更后:设置不生效,没有阴影效果。 214 */ 215 this.context.shadowColor = "2024-11-28T07:27:10.607Z" 216 this.context.fillRect(10, 10, 100, 100) 217 }) 218 } 219 .width('100%') 220 .height('100%') 221 } 222} 223```