1# IAudioRender
2
3
4## 概述
5
6AudioRender音频播放接口。
7
8提供音频播放支持的驱动能力,包括音频控制、音频属性、音频场景、音频音量、获取硬件延迟时间、播放音频帧数据等。
9
10**起始版本:** 4.0
11
12**相关模块:**[HdiAudio](_hdi_audio_v11.md)
13
14
15## 汇总
16
17
18### Public 成员函数
19
20| 名称 | 描述 |
21| -------- | -------- |
22| [GetLatency](#getlatency) ([out] unsigned int ms) | 获取音频硬件驱动的延迟时间。 |
23| [RenderFrame](#renderframe) ([in] byte[] frame, [out] unsigned long replyBytes) | 向音频驱动中播放一帧输出数据(放音,音频下行数据)。 |
24| [GetRenderPosition](#getrenderposition) ([out] unsigned long frames, [out] struct [AudioTimeStamp](_audio_time_stamp_v10.md) time) | 获取音频已输出的帧数。 |
25| [SetRenderSpeed](#setrenderspeed) ([in] float speed) | 设置一个音频的播放速度。 |
26| [GetRenderSpeed](#getrenderspeed) ([out] float speed) | 获取一个音频当前的播放速度。 |
27| [SetChannelMode](#setchannelmode) ([in] enum [AudioChannelMode](_hdi_audio_v11.md#audiochannelmode) mode) | 设置音频播放的通道模式。 |
28| [GetChannelMode](#getchannelmode) ([out] enum [AudioChannelMode](_hdi_audio_v11.md#audiochannelmode) mode) | 获取音频播放当前的通道模式。 |
29| [RegCallback](#regcallback) ([in] [IAudioCallback](interface_i_audio_callback_v10.md) audioCallback, [in] byte cookie) | 注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知。 |
30| [DrainBuffer](#drainbuffer) ([out] enum [AudioDrainNotifyType](_hdi_audio_v11.md#audiodrainnotifytype) type) | 排空缓冲区中的数据。 |
31| [IsSupportsDrain](#issupportsdrain) ([out] boolean support) | 判断是否支持清空缓冲区数据的功能。 |
32| [CheckSceneCapability](#checkscenecapability) ([in] struct [AudioSceneDescriptor](_audio_scene_descriptor_v10.md) scene, [out] boolean supported) | 是否支持某个音频场景的配置。 |
33| [SelectScene](#selectscene) ([in] struct [AudioSceneDescriptor](_audio_scene_descriptor_v10.md) scene) | 选择音频场景。 |
34| [SetMute](#setmute) ([in] boolean mute) | 设置音频的静音状态。 |
35| [GetMute](#getmute) ([out] boolean mute) | 获取音频的静音状态。 |
36| [SetVolume](#setvolume) ([in] float volume) | 设置一个音频流的音量。 |
37| [GetVolume](#getvolume) ([out] float volume) | 获取一个音频流的音量。 |
38| [GetGainThreshold](#getgainthreshold) ([out] float min, [out] float max) | 获取音频流增益的阈值。 |
39| [GetGain](#getgain) ([out] float gain) | 获取音频流的增益。 |
40| [SetGain](#setgain) ([in] float gain) | 设置音频流的增益。 |
41| [GetFrameSize](#getframesize) ([out] unsigned long size) | 获取音频帧的大小。 |
42| [GetFrameCount](#getframecount) ([out] unsigned long count) | 获取音频buffer中的音频帧数。 |
43| [SetSampleAttributes](#setsampleattributes) ([in] struct [AudioSampleAttributes](_audio_sample_attributes_v10.md) attrs) | 设置音频采样的属性参数。 |
44| [GetSampleAttributes](#getsampleattributes) ([out] struct [AudioSampleAttributes](_audio_sample_attributes_v10.md) attrs) | 获取音频采样的属性参数。 |
45| [GetCurrentChannelId](#getcurrentchannelid) ([out] unsigned int channelId) | 获取音频的数据通道ID。 |
46| [SetExtraParams](#setextraparams) ([in] String keyValueList) | 设置音频拓展参数。 |
47| [GetExtraParams](#getextraparams) ([out] String keyValueList) | 获取音频拓展参数。 |
48| [ReqMmapBuffer](#reqmmapbuffer) ([in] int reqSize, [in] struct [AudioMmapBufferDescripter](_audio_mmap_buffer_descripter_v10.md) desc) | 请求mmap缓冲区。 |
49| [GetMmapPosition](#getmmapposition) ([out] unsigned long frames, [out] struct [AudioTimeStamp](_audio_time_stamp_v10.md) time) | 获取当前mmap的读/写位置。 |
50| [AddAudioEffect](#addaudioeffect) ([in] unsigned long effectid) | 添加音频效果。 |
51| [RemoveAudioEffect](#removeaudioeffect) ([in] unsigned long effectid) | 移除音频效果。 |
52| [GetFrameBufferSize](#getframebuffersize) ([out] unsigned long bufferSize) | 获取缓冲区大小。 |
53| [Start](#start) () | 启动一个音频播放或录音处理。 |
54| [Stop](#stop) () | 停止一个音频播放或录音处理。 |
55| [Pause](#pause) () | 暂停一个音频播放或录音处理。 |
56| [Resume](#resume) () | 恢复一个音频播放或录音处理。 |
57| [Flush](#flush) () | 刷新音频缓冲区buffer中的数据。 |
58| [TurnStandbyMode](#turnstandbymode) () | 设置或去设置设备的待机模式。 |
59| [AudioDevDump](#audiodevdump) ([in] int range, [in] int fd) | Dump音频设备信息。 |
60| [IsSupportsPauseAndResume](#issupportspauseandresume) ([out] boolean supportPause, [out] boolean supportResume) | 判断声卡是否支持音频播放的暂停和恢复功能 |
61| [SetBufferSize](#setbuffersize) ([in] unsigned int size) | 设置低功耗模式缓存长度。 |
62
63
64## 成员函数说明
65
66
67### AddAudioEffect()
68
69```
70IAudioRender::AddAudioEffect ([in] unsigned long effectid)
71```
72
73**描述**
74
75添加音频效果。
76
77**起始版本:** 4.0
78
79**参数:**
80
81| 名称 | 描述 |
82| -------- | -------- |
83| effectid | 添加的音频效果实例标识符。 |
84
85**返回:**
86
87成功返回值0,失败返回负值。
88
89
90### AudioDevDump()
91
92```
93IAudioRender::AudioDevDump ([in] int range, [in] int fd )
94```
95
96**描述**
97
98Dump音频设备信息。
99
100**起始版本:** 4.0
101
102**参数:**
103
104| 名称 | 描述 |
105| -------- | -------- |
106| range | Dump信息范围,分为简要信息、全量信息。 |
107| fd | 指定Dump目标文件。 |
108
109**返回:**
110
111成功返回值0,失败返回负值。
112
113
114### CheckSceneCapability()
115
116```
117IAudioRender::CheckSceneCapability ([in] struct AudioSceneDescriptor scene, [out] boolean supported )
118```
119
120**描述**
121
122是否支持某个音频场景的配置。
123
124**起始版本:** 4.0
125
126**参数:**
127
128| 名称 | 描述 |
129| -------- | -------- |
130| scene | 待判断的音频场景描述符,详请参考[AudioSceneDescriptor](_audio_scene_descriptor_v10.md)。 |
131| supported | 是否支持的状态保存到supported中,true表示支持,false表示不支持。 |
132
133**返回:**
134
135成功返回值0,失败返回负值。
136
137**参见:**
138
139[SelectScene](#selectscene)
140
141
142### DrainBuffer()
143
144```
145IAudioRender::DrainBuffer ([out] enum AudioDrainNotifyType type)
146```
147
148**描述**
149
150排空缓冲区中的数据。
151
152**起始版本:** 4.0
153
154**参数:**
155
156| 名称 | 描述 |
157| -------- | -------- |
158| type | 播放结束的类型,详请参考[AudioDrainNotifyType](_hdi_audio_v11.md#audiodrainnotifytype)。 |
159
160**返回:**
161
162成功返回值0,失败返回负值。
163
164**参见:**
165
166[RegCallback](#regcallback)
167
168
169### Flush()
170
171```
172IAudioRender::Flush ()
173```
174
175**描述**
176
177刷新音频缓冲区buffer中的数据。
178
179**起始版本:** 4.0
180
181**返回:**
182
183成功返回值0,失败返回负值。
184
185
186### GetChannelMode()
187
188```
189IAudioRender::GetChannelMode ([out] enum AudioChannelMode mode)
190```
191
192**描述**
193
194获取音频播放当前的通道模式。
195
196**起始版本:** 4.0
197
198**参数:**
199
200| 名称 | 描述 |
201| -------- | -------- |
202| mode | 获取的通道模式保存到mode中,详请参考[AudioChannelMode](_hdi_audio_v11.md#audiochannelmode)。 |
203
204**返回:**
205
206成功返回值0,失败返回负值。
207
208**参见:**
209
210[SetChannelMode](#setchannelmode)
211
212
213### GetCurrentChannelId()
214
215```
216IAudioRender::GetCurrentChannelId ([out] unsigned int channelId)
217```
218
219**描述**
220
221获取音频的数据通道ID。
222
223**起始版本:** 4.0
224
225**参数:**
226
227| 名称 | 描述 |
228| -------- | -------- |
229| channelId | 获取的通道ID保存到channelId中。 |
230
231**返回:**
232
233成功返回值0,失败返回负值。
234
235
236### GetExtraParams()
237
238```
239IAudioRender::GetExtraParams ([out] String keyValueList)
240```
241
242**描述**
243
244获取音频拓展参数。
245
246**起始版本:** 4.0
247
248**参数:**
249
250| 名称 | 描述 |
251| -------- | -------- |
252| keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割。 |
253
254**返回:**
255
256成功返回值0,失败返回负值。
257
258
259### GetFrameBufferSize()
260
261```
262IAudioRender::GetFrameBufferSize ([out] unsigned long bufferSize)
263```
264
265**描述**
266
267获取缓冲区大小。
268
269**起始版本:** 4.0
270
271**参数:**
272
273| 名称 | 描述 |
274| -------- | -------- |
275| bufferSize | 获取的缓冲区大小保存在bufferSize中,单位为字节。 |
276
277**返回:**
278
279成功返回值0,失败返回负值。
280
281
282### GetFrameCount()
283
284```
285IAudioRender::GetFrameCount ([out] unsigned long count)
286```
287
288**描述**
289
290获取音频buffer中的音频帧数。
291
292**起始版本:** 4.0
293
294**参数:**
295
296| 名称 | 描述 |
297| -------- | -------- |
298| count | 一个音频buffer中包含的音频帧数,获取后保存到count中。 |
299
300**返回:**
301
302成功返回值0,失败返回负值。
303
304
305### GetFrameSize()
306
307```
308IAudioRender::GetFrameSize ([out] unsigned long size)
309```
310
311**描述**
312
313获取音频帧的大小。
314
315获取一帧音频数据的长度(字节数)。
316
317**起始版本:** 4.0
318
319**参数:**
320
321| 名称 | 描述 |
322| -------- | -------- |
323| size | 获取的音频帧大小(字节数)保存到size中。 |
324
325**返回:**
326
327成功返回值0,失败返回负值。
328
329
330### GetGain()
331
332```
333IAudioRender::GetGain ([out] float gain)
334```
335
336**描述**
337
338获取音频流的增益。
339
340**起始版本:** 4.0
341
342**参数:**
343
344| 名称 | 描述 |
345| -------- | -------- |
346| gain | 保存当前获取到的增益到gain中。 |
347
348**返回:**
349
350成功返回值0,失败返回负值。
351
352**参见:**
353
354[GetGainThreshold](#getgainthreshold)
355
356[SetGain](#setgain)
357
358
359### GetGainThreshold()
360
361```
362IAudioRender::GetGainThreshold ([out] float min, [out] float max )
363```
364
365**描述**
366
367获取音频流增益的阈值。
368
369在具体的功能实现中,可以根据芯片平台的实际情况来进行处理:
370
371- 可以使用实际的增益值,例如增益的范围为-50db ~ 6db。
372
373- 也可以将增益范围设定为0.0~1.0,如果增益的范围为-50db ~ 6db, 则增益的映射关系为0.0表示静音,1.0表示最大增益(6db)。
374
375**起始版本:** 4.0
376
377**参数:**
378
379| 名称 | 描述 |
380| -------- | -------- |
381| min | 获取的音频增益的阈值下限保存到min中。 |
382| max | 获取的音频增益的阈值上限保存到max中。 |
383
384**返回:**
385
386成功返回值0,失败返回负值。
387
388**参见:**
389
390[GetGain](#getgain)
391
392[SetGain](#setgain)
393
394
395### GetLatency()
396
397```
398IAudioRender::GetLatency ([out] unsigned int ms)
399```
400
401**描述**
402
403获取音频硬件驱动的延迟时间。
404
405**起始版本:** 4.0
406
407**参数:**
408
409| 名称 | 描述 |
410| -------- | -------- |
411| ms | 获取的延迟时间(单位:毫秒)保存到ms中。 |
412
413**返回:**
414
415成功返回值0,失败返回负值。
416
417
418### GetMmapPosition()
419
420```
421IAudioRender::GetMmapPosition ([out] unsigned long frames, [out] struct AudioTimeStamp time )
422```
423
424**描述**
425
426获取当前mmap的读/写位置。
427
428**起始版本:** 4.0
429
430**参数:**
431
432| 名称 | 描述 |
433| -------- | -------- |
434| frames | 获取的音频帧计数保存到frames中。 |
435| time | 获取的关联时间戳保存到time中,详请参考[AudioTimeStamp](_audio_time_stamp_v10.md)。 |
436
437**返回:**
438
439成功返回值0,失败返回负值。
440
441
442### GetMute()
443
444```
445IAudioRender::GetMute ([out] boolean mute)
446```
447
448**描述**
449
450获取音频的静音状态。
451
452**起始版本:** 4.0
453
454**参数:**
455
456| 名称 | 描述 |
457| -------- | -------- |
458| mute | 获取的静音状态保存到mute中,true表示静音操作、false表示取消静音操作。 |
459
460**返回:**
461
462成功返回值0,失败返回负值。
463
464**参见:**
465
466[SetMute](#setmute)
467
468
469### GetRenderPosition()
470
471```
472IAudioRender::GetRenderPosition ([out] unsigned long frames, [out] struct AudioTimeStamp time )
473```
474
475**描述**
476
477获取音频已输出的帧数。
478
479**起始版本:** 4.0
480
481**参数:**
482
483| 名称 | 描述 |
484| -------- | -------- |
485| frames | 获取的音频帧数保存到frames中,详请参考[AudioTimeStamp](_audio_time_stamp_v10.md)。 |
486| time | 获取的关联时间戳保存到time中。 |
487
488**返回:**
489
490成功返回值0,失败返回负值。
491
492**参见:**
493
494[RenderFrame](#renderframe)
495
496
497### GetRenderSpeed()
498
499```
500IAudioRender::GetRenderSpeed ([out] float speed)
501```
502
503**描述**
504
505获取一个音频当前的播放速度。
506
507**起始版本:** 4.0
508
509**参数:**
510
511| 名称 | 描述 |
512| -------- | -------- |
513| speed | 获取的播放速度保存到speed中。 |
514
515**返回:**
516
517成功返回值0,失败返回负值。
518
519**参见:**
520
521[SetRenderSpeed](#setrenderspeed)
522
523
524### GetSampleAttributes()
525
526```
527IAudioRender::GetSampleAttributes ([out] struct AudioSampleAttributes attrs)
528```
529
530**描述**
531
532获取音频采样的属性参数。
533
534**起始版本:** 4.0
535
536**参数:**
537
538| 名称 | 描述 |
539| -------- | -------- |
540| attrs | 获取的音频采样属性(例如采样频率、采样精度、通道) 保存到attrs中,详请参考[AudioSampleAttributes](_audio_sample_attributes_v10.md)。 |
541
542**返回:**
543
544成功返回值0,失败返回负值。
545
546**参见:**
547
548[SetSampleAttributes](#setsampleattributes)
549
550
551### GetVolume()
552
553```
554IAudioRender::GetVolume ([out] float volume)
555```
556
557**描述**
558
559获取一个音频流的音量。
560
561**起始版本:** 4.0
562
563**参数:**
564
565| 名称 | 描述 |
566| -------- | -------- |
567| volume | 获取的音量保存到volume中,范围0.0~1.0。 |
568
569**返回:**
570
571成功返回值0,失败返回负值。
572
573**参见:**
574
575[SetVolume](#setvolume)
576
577
578### IsSupportsDrain()
579
580```
581IAudioRender::IsSupportsDrain ([out] boolean support)
582```
583
584**描述**
585
586判断是否支持清空缓冲区数据的功能。
587
588**起始版本:** 4.0
589
590**参数:**
591
592| 名称 | 描述 |
593| -------- | -------- |
594| support | 是否支持的状态保存到support中,true表示支持,false表示不支持。 |
595
596**返回:**
597
598成功返回值0,失败返回负值。
599
600
601### IsSupportsPauseAndResume()
602
603```
604IAudioRender::IsSupportsPauseAndResume ([out] boolean supportPause, [out] boolean supportResume )
605```
606
607**描述**
608
609判断声卡是否支持音频播放的暂停和恢复功能
610
611**起始版本:** 4.0
612
613**参数:**
614
615| 名称 | 描述 |
616| -------- | -------- |
617| supportPause | 是否支持暂停功能的状态保存到supportPause中,true表示支持,false表示不支持。 |
618| supportResume | 是否支持恢复功能的状态保存到supportResume中,true表示支持,false表示不支持。 |
619
620**返回:**
621
622成功返回值0,失败返回负值。
623
624
625### Pause()
626
627```
628IAudioRender::Pause ()
629```
630
631**描述**
632
633暂停一个音频播放或录音处理。
634
635**起始版本:** 4.0
636
637**返回:**
638
639成功返回值0,失败返回负值。
640
641**参见:**
642
643[Resume](#resume)
644
645
646### RegCallback()
647
648```
649IAudioRender::RegCallback ([in] IAudioCallback audioCallback, [in] byte cookie )
650```
651
652**描述**
653
654注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知。
655
656**起始版本:** 4.0
657
658**参数:**
659
660| 名称 | 描述 |
661| -------- | -------- |
662| audioCallback | 注册的回调函数,详请参考[IAudioCallback](interface_i_audio_callback_v10.md)。 |
663| cookie | 回调函数的入参。 |
664
665**返回:**
666
667成功返回值0,失败返回负值。
668
669**参见:**
670
671[RegCallback](#regcallback)
672
673
674### RemoveAudioEffect()
675
676```
677IAudioRender::RemoveAudioEffect ([in] unsigned long effectid)
678```
679
680**描述**
681
682移除音频效果。
683
684**起始版本:** 4.0
685
686**参数:**
687
688| 名称 | 描述 |
689| -------- | -------- |
690| effectid | 移除的音频效果实例标识符。 |
691
692**返回:**
693
694成功返回值0,失败返回负值。
695
696
697### RenderFrame()
698
699```
700IAudioRender::RenderFrame ([in] byte[] frame, [out] unsigned long replyBytes )
701```
702
703**描述**
704
705向音频驱动中播放一帧输出数据(放音,音频下行数据)。
706
707**起始版本:** 4.0
708
709**参数:**
710
711| 名称 | 描述 |
712| -------- | -------- |
713| frame | 待写入的输出数据的音频frame。 |
714| replyBytes | 实际写入的音频数据长度(字节数),获取后保存到replyBytes中。 |
715
716**返回:**
717
718成功返回值0,失败返回负值。
719
720
721### ReqMmapBuffer()
722
723```
724IAudioRender::ReqMmapBuffer ([in] int reqSize, [in] struct AudioMmapBufferDescripter desc )
725```
726
727**描述**
728
729请求mmap缓冲区。
730
731**起始版本:** 4.0
732
733**参数:**
734
735| 名称 | 描述 |
736| -------- | -------- |
737| reqSize | 请求缓冲区的大小。 |
738| desc | 缓冲区描述符,详请参考[AudioMmapBufferDescripter](_audio_mmap_buffer_descripter_v10.md)。 |
739
740**返回:**
741
742成功返回值0,失败返回负值。
743
744
745### Resume()
746
747```
748IAudioRender::Resume ()
749```
750
751**描述**
752
753恢复一个音频播放或录音处理。
754
755**起始版本:** 4.0
756
757**返回:**
758
759成功返回值0,失败返回负值。
760
761**参见:**
762
763[Pause](#pause)
764
765
766### SelectScene()
767
768```
769IAudioRender::SelectScene ([in] struct AudioSceneDescriptor scene)
770```
771
772**描述**
773
774选择音频场景。
775
776- 选择一个非常具体的音频场景(应用场景和输出设备的组合),例如同样是使用手机中的喇叭作为输出设备。
777  - 在媒体播放场景scene为media_speaker。
778  - 在语音通话免提场景scene为voice_speaker。
779
780- 只是选择一个音频场景,例如使用场景为媒体播放(media)、电影播放(movie)、游戏播放(game)。
781
782- 只是选择一个音频输出设备,例如输出设备为听筒(receiver)、喇叭(speaker)、有线耳机(headset)。
783
784**起始版本:** 4.0
785
786**参数:**
787
788| 名称 | 描述 |
789| -------- | -------- |
790| scene | 待设置的音频场景描述符,详请参考[AudioSceneDescriptor](_audio_scene_descriptor_v10.md)。 |
791
792**返回:**
793
794成功返回值0,失败返回负值。
795
796**参见:**
797
798[CheckSceneCapability](#checkscenecapability)
799
800
801### SetBufferSize()
802
803```
804IAudioRender::SetBufferSize ([in] unsigned int size)
805```
806
807**描述**
808
809设置低功耗模式缓存长度。
810
811**起始版本:** 4.0
812
813**参数:**
814
815| 名称 | 描述 |
816| -------- | -------- |
817| size | 包含音频数据的缓存长度。 |
818
819**返回:**
820
821成功返回值0,失败返回负值。
822
823
824### SetChannelMode()
825
826```
827IAudioRender::SetChannelMode ([in] enum AudioChannelMode mode)
828```
829
830**描述**
831
832设置音频播放的通道模式。
833
834**起始版本:** 4.0
835
836**参数:**
837
838| 名称 | 描述 |
839| -------- | -------- |
840| mode | 待设置的通道模式,详请参考[AudioChannelMode](_hdi_audio_v11.md#audiochannelmode)。 |
841
842**返回:**
843
844成功返回值0,失败返回负值。
845
846**参见:**
847
848[GetChannelMode](#getchannelmode)
849
850
851### SetExtraParams()
852
853```
854IAudioRender::SetExtraParams ([in] String keyValueList)
855```
856
857**描述**
858
859设置音频拓展参数。
860
861**起始版本:** 4.0
862
863**参数:**
864
865| 名称 | 描述 |
866| -------- | -------- |
867| keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割。 |
868
869**返回:**
870
871成功返回值0,失败返回负值。
872
873
874### SetGain()
875
876```
877IAudioRender::SetGain ([in] float gain)
878```
879
880**描述**
881
882设置音频流的增益。
883
884**起始版本:** 4.0
885
886**参数:**
887
888| 名称 | 描述 |
889| -------- | -------- |
890| gain | 待设置的增益,最小为0.0,最大为1.0。 |
891
892**返回:**
893
894成功返回值0,失败返回负值。
895
896**参见:**
897
898[GetGainThreshold](#getgainthreshold)
899
900[GetGain](#getgain)
901
902
903### SetMute()
904
905```
906IAudioRender::SetMute ([in] boolean mute)
907```
908
909**描述**
910
911设置音频的静音状态。
912
913**起始版本:** 4.0
914
915**参数:**
916
917| 名称 | 描述 |
918| -------- | -------- |
919| mute | 待设置的静音状态,true表示静音操作、false表示取消静音操作。 |
920
921**返回:**
922
923成功返回值0,失败返回负值。
924
925**参见:**
926
927[GetMute](#getmute)
928
929
930### SetRenderSpeed()
931
932```
933IAudioRender::SetRenderSpeed ([in] float speed)
934```
935
936**描述**
937
938设置一个音频的播放速度。
939
940**起始版本:** 4.0
941
942**参数:**
943
944| 名称 | 描述 |
945| -------- | -------- |
946| speed | 待设置的播放速度(倍速),例0.5、0.75、1.0、1.25、1.5、2.0。 |
947
948**返回:**
949
950成功返回值0,失败返回负值。
951
952**参见:**
953
954[GetRenderSpeed](#getrenderspeed)
955
956
957### SetSampleAttributes()
958
959```
960IAudioRender::SetSampleAttributes ([in] struct AudioSampleAttributes attrs)
961```
962
963**描述**
964
965设置音频采样的属性参数。
966
967**起始版本:** 4.0
968
969**参数:**
970
971| 名称 | 描述 |
972| -------- | -------- |
973| attrs | 待设置的音频采样属性,例如采样频率、采样精度、通道,详请参考[AudioSampleAttributes](_audio_sample_attributes_v10.md)。 |
974
975**返回:**
976
977成功返回值0,失败返回负值。
978
979**参见:**
980
981[GetSampleAttributes](#getsampleattributes)
982
983
984### SetVolume()
985
986```
987IAudioRender::SetVolume ([in] float volume)
988```
989
990**描述**
991
992设置一个音频流的音量。
993
994音量的取值范围是0.0~1.0,如果音频服务中的音量等级为15级(0 ~ 15), 则音量的映射关系为0.0表示静音,1.0表示最大音量等级(15)。
995
996**起始版本:** 4.0
997
998**参数:**
999
1000| 名称 | 描述 |
1001| -------- | -------- |
1002| volume | 待设置的音量,范围0.0~1.0。 |
1003
1004**返回:**
1005
1006成功返回值0,失败返回负值。
1007
1008
1009### Start()
1010
1011```
1012IAudioRender::Start ()
1013```
1014
1015**描述**
1016
1017启动一个音频播放或录音处理。
1018
1019**起始版本:** 4.0
1020
1021**返回:**
1022
1023成功返回值0,失败返回负值。
1024
1025**参见:**
1026
1027[Stop](#stop)
1028
1029
1030### Stop()
1031
1032```
1033IAudioRender::Stop ()
1034```
1035
1036**描述**
1037
1038停止一个音频播放或录音处理。
1039
1040**起始版本:** 4.0
1041
1042**返回:**
1043
1044成功返回值0,失败返回负值。
1045
1046**参见:**
1047
1048[Start](#start)
1049
1050
1051### TurnStandbyMode()
1052
1053```
1054IAudioRender::TurnStandbyMode ()
1055```
1056
1057**描述**
1058
1059设置或去设置设备的待机模式。
1060
1061**起始版本:** 4.0
1062
1063**返回:**
1064
1065设置设备待机模式成功返回值0,失败返回负值;设置取消设备待机模式成功返回正值,失败返回负值。
1066