1# IAudioRender 2 3 4## 概述 5 6AudioRender音频播放接口。 7 8提供音频播放支持的驱动能力,包括音频控制、音频属性、音频场景、音频音量、获取硬件延迟时间、播放音频帧数据等。 9 10**起始版本:** 4.1 11 12**相关模块:**[HdiAudio](_hdi_audio_v20.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_v20.md) time) | 获取音频已输出的帧数。 | 25| [SetRenderSpeed](#setrenderspeed) ([in] float speed) | 设置一个音频的播放速度。 | 26| [GetRenderSpeed](#getrenderspeed) ([out] float speed) | 获取一个音频当前的播放速度。 | 27| [SetChannelMode](#setchannelmode) ([in] enum [AudioChannelMode](_hdi_audio_v20.md#audiochannelmode) mode) | 设置音频播放的通道模式。 | 28| [GetChannelMode](#getchannelmode) ([out] enum [AudioChannelMode](_hdi_audio_v20.md#audiochannelmode) mode) | 获取音频播放当前的通道模式。 | 29| [RegCallback](#regcallback) ([in] [IAudioCallback](interface_i_audio_callback_v20.md) audioCallback, [in] byte cookie) | 注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知。 | 30| [DrainBuffer](#drainbuffer) ([out] enum [AudioDrainNotifyType](_hdi_audio_v20.md#audiodrainnotifytype) type) | 排空缓冲区中的数据。 | 31| [IsSupportsDrain](#issupportsdrain) ([out] boolean support) | 判断是否支持清空缓冲区数据的功能。 | 32| [CheckSceneCapability](#checkscenecapability) ([in] struct [AudioSceneDescriptor](_audio_scene_descriptor_v20.md) scene, [out] boolean supported) | 是否支持某个音频场景的配置。 | 33| [SelectScene](#selectscene) ([in] struct [AudioSceneDescriptor](_audio_scene_descriptor_v20.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_v20.md) attrs) | 设置音频采样的属性参数。 | 44| [GetSampleAttributes](#getsampleattributes) ([out] struct [AudioSampleAttributes](_audio_sample_attributes_v20.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 AudioMmapBufferDescriptor desc) | 请求mmap缓冲区。 | 49| [GetMmapPosition](#getmmapposition) ([out] unsigned long frames, [out] struct [AudioTimeStamp](_audio_time_stamp_v20.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.1 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.1 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.1 125 126**参数:** 127 128| 名称 | 描述 | 129| -------- | -------- | 130| scene | 待判断的音频场景描述符,详请参考[AudioSceneDescriptor](_audio_scene_descriptor_v20.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.1 153 154**参数:** 155 156| 名称 | 描述 | 157| -------- | -------- | 158| type | 播放结束的类型,详请参考[AudioDrainNotifyType](_hdi_audio_v20.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.1 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.1 197 198**参数:** 199 200| 名称 | 描述 | 201| -------- | -------- | 202| mode | 获取的通道模式保存到mode中,详请参考[AudioChannelMode](_hdi_audio_v20.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.1 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.1 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.1 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.1 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.1 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.1 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.1 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.1 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.1 429 430**参数:** 431 432| 名称 | 描述 | 433| -------- | -------- | 434| frames | 获取的音频帧计数保存到frames中。 | 435| time | 获取的关联时间戳保存到time中,详请参考[AudioTimeStamp](_audio_time_stamp_v20.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.1 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.1 480 481**参数:** 482 483| 名称 | 描述 | 484| -------- | -------- | 485| frames | 获取的音频帧数保存到frames中,详请参考[AudioTimeStamp](_audio_time_stamp_v20.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.1 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.1 535 536**参数:** 537 538| 名称 | 描述 | 539| -------- | -------- | 540| attrs | 获取的音频采样属性(例如采样频率、采样精度、通道) 保存到attrs中,详请参考[AudioSampleAttributes](_audio_sample_attributes_v20.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.1 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.1 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.1 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.1 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.1 657 658**参数:** 659 660| 名称 | 描述 | 661| -------- | -------- | 662| audioCallback | 注册的回调函数,详请参考[IAudioCallback](interface_i_audio_callback_v20.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.1 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.1 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 AudioMmapBufferDescriptor desc ) 725``` 726 727**描述** 728 729请求mmap缓冲区。 730 731**起始版本:** 4.1 732 733**参数:** 734 735| 名称 | 描述 | 736| -------- | -------- | 737| reqSize | 请求缓冲区的大小。 | 738| desc | 缓冲区描述符,详请参考**AudioMmapBufferDescriptor**。 | 739 740**返回:** 741 742成功返回值0,失败返回负值。 743 744 745### Resume() 746 747``` 748IAudioRender::Resume () 749``` 750 751**描述** 752 753恢复一个音频播放或录音处理。 754 755**起始版本:** 4.1 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- 1. 选择一个非常具体的音频场景(应用场景和输出设备的组合),例如同样是使用手机中的喇叭作为输出设备。 777 - 在媒体播放场景scene为media_speaker。 778 - 在语音通话免提场景scene为voice_speaker。 779 780- 2. 只是选择一个音频场景,例如使用场景为媒体播放(media)、电影播放(movie)、游戏播放(game)。 781 782- 3. 只是选择一个音频输出设备,例如输出设备为听筒(receiver)、喇叭(speaker)、有线耳机(headset)。 783 784**起始版本:** 4.1 785 786**参数:** 787 788| 名称 | 描述 | 789| -------- | -------- | 790| scene | 待设置的音频场景描述符,详请参考[AudioSceneDescriptor](_audio_scene_descriptor_v20.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.1 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.1 835 836**参数:** 837 838| 名称 | 描述 | 839| -------- | -------- | 840| mode | 待设置的通道模式,详请参考[AudioChannelMode](_hdi_audio_v20.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.1 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.1 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.1 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.1 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.1 968 969**参数:** 970 971| 名称 | 描述 | 972| -------- | -------- | 973| attrs | 待设置的音频采样属性,例如采样频率、采样精度、通道,详请参考[AudioSampleAttributes](_audio_sample_attributes_v20.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.1 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.1 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.1 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.1 1062 1063**返回:** 1064 1065设置设备待机模式成功返回值0,失败返回负值;设置取消设备待机模式成功返回正值,失败返回负值。 1066