1# multimedia子系统ChangeLog
2
3## cl.multimedia.1 音频C接口流类型枚举声明变更
4
5对于在API10中已经新增的音频C接口,音频输出流类型错写为AUDIOSTREAM_TYPE_RERNDERER,需要修正为AUDIOSTREAM_TYPE_RENDERER。
6
7**变更影响**
8
9对于已发布的C接口,可能影响三方应用的兼容性。
10
11**关键的接口/组件变更**
12
13修改前的接口原型:
14
15 ```C
16enum OH_AudioStream_Type {
17    /**
18     * The type for audio stream is renderer.
19     */
20    AUDIOSTREAM_TYPE_RERNDERER = 1,
21
22    /**
23     * The type for audio stream is capturer.
24     */
25    AUDIOSTREAM_TYPE_CAPTURER = 2
26};
27 ```
28
29修改后的接口原型:
30
31 ```C
32enum OH_AudioStream_Type {
33    /**
34     * The type for audio stream is renderer.
35     */
36    AUDIOSTREAM_TYPE_RENDERER = 1,
37
38    /**
39     * The type for audio stream is capturer.
40     */
41    AUDIOSTREAM_TYPE_CAPTURER = 2
42};
43 ```
44
45**适配指导**
46
47开发人员需要在使用音频输出流类型AUDIOSTREAM_TYPE_RERNDERER时,修改为AUDIOSTREAM_TYPE_RENDERER。例如:
48
49修改前
50
51```C
52OH_AudioStreamBuilder* builder;
53OH_AudioStreamBuilder_Create(&builder, AUDIOSTREAM_TYPE_RERNDERER);
54```
55
56修改后
57
58```C
59OH_AudioStreamBuilder* builder;
60OH_AudioStreamBuilder_Create(&builder, AUDIOSTREAM_TYPE_RENDERER);
61```
62
63## cl.multimedia.2 移除OH_AudioStream_Content
64
65对于在API10中已经新增的音频C接口,音频输出流属性中将删除掉OH_AudioStream_Content。
66
67**变更影响**
68
69对于已发布的C接口,可能影响三方应用的兼容性。
70
71**关键的接口/组件变更**
72
73- native_audiostream_base.h 文件
74
75修改前的接口原型:
76
77```C
78typedef enum {
79    AUDIOSTREAM_CONTENT_TYPE_UNKNOWN = 0,
80    AUDIOSTREAM_CONTENT_TYPE_SPEECH = 1,
81    AUDIOSTREAM_CONTENT_TYPE_MUSIC = 2,
82    AUDIOSTREAM_CONTENT_TYPE_MOVIE = 3,
83} OH_AudioStream_Content;
84```
85修改后
86删除OH_AudioStream_Content枚举定义
87
88- native_audiostreambuilder.h 文件
89
90修改前
91
92```C
93OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInfo(OH_AudioStreamBuilder* builder,
94    OH_AudioStream_Usage usage, OH_AudioStream_Content content);
95```
96
97修改后
98```C
99OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInfo(OH_AudioStreamBuilder* builder,
100    OH_AudioStream_Usage usage);
101```
102
103- native_audiorenderer.h 文件
104
105修改前
106
107```C
108OH_AudioStream_Result OH_AudioRenderer_GetRendererInfo(OH_AudioRenderer* renderer,
109    OH_AudioStream_Usage* usage, OH_AudioStream_Content* content);
110```
111
112修改后
113```C
114OH_AudioStream_Result OH_AudioRenderer_GetRendererInfo(OH_AudioRenderer* renderer,
115    OH_AudioStream_Usage* usage);
116```
117
118**适配指导**
119
120对于OH_AudioStreamBuilder_SetRendererInfo接口,开发者按照所属场景,原本设置的OH_AudioStream_Content类型可对比下表,使用对应的OH_AudioStream_Usage类型。
121
122| OH_AudioStream_Content          | OH_AudioStream_Usage                  |
123| ------------------------------- | ------------------------------------- |
124| AUDIOSTREAM_CONTENT_TYPE_SPEECH | AUDIOSTREAM_USAGE_VOICE_COMMUNICATION |
125| AUDIOSTREAM_CONTENT_TYPE_MUSIC  | AUDIOSTREAM_USAGE_MUSIC               |
126| AUDIOSTREAM_CONTENT_TYPE_MOVIE  | AUDIOSTREAM_USAGE_MOVIE               |
127
128对于OH_AudioRenderer_GetRendererInfo接口,开发者使用新的接口只能获取到OH_AudioStream_Usage属性,不能获取OH_AudioStream_Content属性。
129
130## cl.multimedia.3 OH_AudioStream_Usage变更
131
132API10的音频C接口native_audiostream_base.h 文件中,在OH_AudioStream_Usage枚举中删除了AUDIOSTREAM_USAGE_MEDIA枚举值,将AUDIOSTREAM_USAGE_COMMUNICATION枚举值变更为AUDIOSTREAM_USAGE_VOICE_COMMUNICATION和AUDIOSTREAM_USAGE_VOICE_ASSISTANT。
133
134**变更影响**
135
136对于已发布的C接口,可能影响三方应用的兼容性。如果开发者使用AUDIOSTREAM_USAGE_MEDIA和AUDIOSTREAM_USAGE_COMMUNICATION枚举值,会有兼容性问题。
137
138**关键的接口/组件变更**
139
140修改前
141
142```C
143typedef enum {
144    AUDIOSTREAM_USAGE_UNKNOWN = 0,
145    AUDIOSTREAM_USAGE_MEDIA = 1,
146    AUDIOSTREAM_USAGE_COMMUNICATION = 2,
147} OH_AudioStream_Usage;
148```
149
150修改后
151```C
152typedef enum {
153    /**
154     * Unknown usage.
155     */
156    AUDIOSTREAM_USAGE_UNKNOWN = 0,
157    /**
158     * Music usage.
159     */
160    AUDIOSTREAM_USAGE_MUSIC = 1,
161    /**
162     * Voice communication usage.
163     */
164    AUDIOSTREAM_USAGE_VOICE_COMMUNICATION = 2,
165    /**
166     * Voice assistant usage.
167     */
168    AUDIOSTREAM_USAGE_VOICE_ASSISTANT = 3,
169    /**
170     * Movie or video usage.
171     */
172    AUDIOSTREAM_USAGE_MOVIE = 10,
173
174} OH_AudioStream_Usage;
175```
176
177**适配指导**
178
179用户通过OH_AudioStreamBuilder_SetRendererInfo接口不能再设置OH_AudioStream_Usage值为AUDIOSTREAM_USAGE_MEDIA,改为使用AUDIOSTREAM_USAGE_MUSIC或者AUDIOSTREAM_USAGE_MOVIE。
180
181修改前
182
183```C
184OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MEDIA);
185```
186
187修改后
188
189```C
190OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MUSIC); // 音乐场景
191```
192
193或者
194
195```C
196OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MOVIE); // 视频场景
197```
198
199用户通过OH_AudioStreamBuilder_SetRendererInfo接口不能再设置OH_AudioStream_Usage值为AUDIOSTREAM_USAGE_COMMUNICATION,改为使用AUDIOSTREAM_USAGE_VOICE_COMMUNICATION或者AUDIOSTREAM_USAGE_VOICE_ASSISTANT。
200
201修改前
202
203```C
204OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_COMMUNICATION);
205```
206
207修改后
208
209```C
210OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_VOICE_COMMUNICATION); // 通话场景
211```
212
213或者
214
215```C
216OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_VOICE_ASSISTANT); // 语音场景
217```
218
219## cl.multimedia.4 OH_AudioStream_SampleFormat变更,删除AUDIOSTREAM_SAMPLE_F32LE
220
221API10的音频C接口native_audiostream_base.h 文件中,在OH_AudioStream_SampleFormat枚举中删除了AUDIOSTREAM_SAMPLE_F32LE枚举值。
222
223**变更影响**
224
225对于已发布的C接口,可能影响三方应用的兼容性。如果开发者使用AUDIOSTREAM_SAMPLE_F32LE会有兼容性问题。
226
227**关键的接口/组件变更**
228
229修改前
230
231```C
232typedef enum {
233    AUDIOSTREAM_SAMPLE_U8 = 0,
234    AUDIOSTREAM_SAMPLE_S16LE = 1,
235    AUDIOSTREAM_SAMPLE_S24LE = 2,
236    AUDIOSTREAM_SAMPLE_S32LE = 3,
237    AUDIOSTREAM_SAMPLE_F32LE = 4,
238} OH_AudioStream_SampleFormat;
239```
240
241修改后
242```C
243typedef enum {
244    /**
245     * Unsigned 8 format.
246     */
247    AUDIOSTREAM_SAMPLE_U8 = 0,
248    /**
249     * Signed 16 bit integer, little endian.
250     */
251    AUDIOSTREAM_SAMPLE_S16LE = 1,
252    /**
253     * Signed 24 bit integer, little endian.
254     */
255    AUDIOSTREAM_SAMPLE_S24LE = 2,
256    /**
257     * Signed 32 bit integer, little endian.
258     */
259    AUDIOSTREAM_SAMPLE_S32LE = 3,
260} OH_AudioStream_SampleFormat;
261```
262
263**适配指导**
264
265修改后用户不能再设置采样格式为AUDIOSTREAM_SAMPLE_F32LE枚举值。
266
267## cl.multimedia.5 OH_AudioStream_Result添加枚举值
268
269API10的音频C接口native_audiostream_base.h 文件中,在OH_AudioStream_Result枚举中给枚举值定义数值。
270
271**变更影响**
272
273无影响
274
275**关键的接口/组件变更**
276
277修改前
278
279```C
280typedef enum {
281    /**
282     * The call was successful.
283     */
284    AUDIOSTREAM_SUCCESS,
285
286    /**
287     * This means that the function was executed with an invalid input parameter.
288     */
289    AUDIOSTREAM_ERROR_INVALID_PARAM,
290
291    /**
292     * Execution status exception.
293     */
294    AUDIOSTREAM_ERROR_ILLEGAL_STATE,
295
296    /**
297     * An system error has occurred.
298     */
299    AUDIOSTREAM_ERROR_SYSTEM
300} OH_AudioStream_Result;
301```
302
303修改后
304```C
305typedef enum {
306    /**
307     * The call was successful.
308     */
309    AUDIOSTREAM_SUCCESS = 0,
310
311    /**
312     * This means that the function was executed with an invalid input parameter.
313     */
314    AUDIOSTREAM_ERROR_INVALID_PARAM = 1,
315
316    /**
317     * Execution status exception.
318     */
319    AUDIOSTREAM_ERROR_ILLEGAL_STATE = 2,
320
321    /**
322     * An system error has occurred.
323     */
324    AUDIOSTREAM_ERROR_SYSTEM = 3
325} OH_AudioStream_Result;
326```
327
328**适配指导**
329
330无兼容性影响,不涉及。
331