Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
figures/ | 12-May-2024 | - | ||||
hals/ | 12-May-2024 | - | 374 | 270 | ||
interfaces/kits/ | 12-May-2024 | - | 1,252 | 319 | ||
src/ | 12-May-2024 | - | 502 | 413 | ||
BUILD.gn | D | 12-May-2024 | 1.7 KiB | 54 | 49 | |
LICENSE | D | 12-May-2024 | 10.1 KiB | 177 | 150 | |
README.md | D | 12-May-2024 | 9.8 KiB | 162 | 138 | |
README_zh.md | D | 12-May-2024 | 9.6 KiB | 162 | 138 | |
config.gni | D | 12-May-2024 | 653 | 19 | 17 |
README.md
1# MEDIA\_UTILS\_LITE<a name="EN-US_TOPIC_0000001127127417"></a> 2 3- [MEDIA\_UTILS\_LITE<a name="EN-US_TOPIC_0000001127127417"></a>](#media_utils_lite) 4 - [Introduction<a name="section11660541593"></a>](#introduction) 5 - [Directory Structure<a name="section8685144625320"></a>](#directory-structure) 6 - [Usage<a name="section1648194512427"></a>](#usage) 7 - [Constraints<a name="section161941989596"></a>](#constraints) 8 - [Repositories Involved<a name="section105062051111614"></a>](#repositories-involved) 9 10## Introduction<a name="section11660541593"></a> 11 12This repository defines common information such as media error codes and data types required for audio and video recording and playback. 13 14Data types 15 16- **SourceType**: type of the media source to play 17- **BufferFlags**: flags of the data carried in the buffer 18- **AudioSourceType**: enumeration of audio input source types 19- **AudioCodecFormat**: enumeration of audio data formats 20- **AudioStreamType**: enumeration of audio stream types 21- **AudioBitWidth**: enumeration of sampling bit width 22 23The following table lists the error codes. 24 25<a name="table7158151314620"></a> 26<table><thead align="left"><tr id="row1722018139620"><th class="cellrowborder" valign="top" width="24.95%" id="mcps1.1.4.1.1"><p id="p172202131066"><a name="p172202131066"></a><a name="p172202131066"></a>Code</p> 27</th> 28<th class="cellrowborder" valign="top" width="42.91%" id="mcps1.1.4.1.2"><p id="p5220913569"><a name="p5220913569"></a><a name="p5220913569"></a>Macro</p> 29</th> 30<th class="cellrowborder" valign="top" width="32.14%" id="mcps1.1.4.1.3"><p id="p1722061317617"><a name="p1722061317617"></a><a name="p1722061317617"></a>Description</p> 31</th> 32</tr> 33</thead> 34<tbody><tr id="row1422020137612"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p202201213562"><a name="p202201213562"></a><a name="p202201213562"></a>0xffffffff</p> 35</td> 36<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p0220171317612"><a name="p0220171317612"></a><a name="p0220171317612"></a>ERR_INVALID_READ</p> 37</td> 38<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p82208133618"><a name="p82208133618"></a><a name="p82208133618"></a>Data reading failed.</p> 39</td> 40</tr> 41<tr id="row82203139620"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p1122013131168"><a name="p1122013131168"></a><a name="p1122013131168"></a>0x0</p> 42</td> 43<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1322011315617"><a name="p1322011315617"></a><a name="p1322011315617"></a>SUCCESS</p> 44</td> 45<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p142207137613"><a name="p142207137613"></a><a name="p142207137613"></a>Operation succeeded.</p> 46</td> 47</tr> 48<tr id="row15220213066"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p14220131313612"><a name="p14220131313612"></a><a name="p14220131313612"></a>0x3c10000</p> 49</td> 50<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1822016133612"><a name="p1822016133612"></a><a name="p1822016133612"></a>ERROR</p> 51</td> 52<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1422071317614"><a name="p1422071317614"></a><a name="p1422071317614"></a>Operation failed.</p> 53</td> 54</tr> 55<tr id="row3220191311619"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p22201013865"><a name="p22201013865"></a><a name="p22201013865"></a>0x3c10001</p> 56</td> 57<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p52211813262"><a name="p52211813262"></a><a name="p52211813262"></a>ERR_ILLEGAL_STATE</p> 58</td> 59<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p102211913669"><a name="p102211913669"></a><a name="p102211913669"></a>Invalid status.</p> 60</td> 61</tr> 62<tr id="row1222119131064"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p152211413962"><a name="p152211413962"></a><a name="p152211413962"></a>0x2A05</p> 63</td> 64<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p7221113864"><a name="p7221113864"></a><a name="p7221113864"></a>ERR_INVALID_PARAM</p> 65</td> 66<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p12211813968"><a name="p12211813968"></a><a name="p12211813968"></a>Invalid parameter.</p> 67</td> 68</tr> 69<tr id="row1122110131163"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p1222111131761"><a name="p1222111131761"></a><a name="p1222111131761"></a>0x3c10003</p> 70</td> 71<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1622171317617"><a name="p1622171317617"></a><a name="p1622171317617"></a>ERR_EARLY_PREPARE</p> 72</td> 73<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1722117131610"><a name="p1722117131610"></a><a name="p1722117131610"></a>Early start.</p> 74</td> 75</tr> 76<tr id="row1322191310611"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p2221713569"><a name="p2221713569"></a><a name="p2221713569"></a>0x3c10004</p> 77</td> 78<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1422115131164"><a name="p1422115131164"></a><a name="p1422115131164"></a>ERR_SOURCE_NOT_SET</p> 79</td> 80<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1722119131068"><a name="p1722119131068"></a><a name="p1722119131068"></a>Media source not set.</p> 81</td> 82</tr> 83<tr id="row62216139614"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p182218133619"><a name="p182218133619"></a><a name="p182218133619"></a>0x3c10005</p> 84</td> 85<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p72211813061"><a name="p72211813061"></a><a name="p72211813061"></a>ERR_INVALID_OPERATION</p> 86</td> 87<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p2221161310618"><a name="p2221161310618"></a><a name="p2221161310618"></a>Invalid operation.</p> 88</td> 89</tr> 90<tr id="row2022111312610"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p1722111139618"><a name="p1722111139618"></a><a name="p1722111139618"></a>0x2A09</p> 91</td> 92<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p12211713767"><a name="p12211713767"></a><a name="p12211713767"></a>ERR_NOFREE_CHANNEL</p> 93</td> 94<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1622115137617"><a name="p1622115137617"></a><a name="p1622115137617"></a>No free channel.</p> 95</td> 96</tr> 97<tr id="row8221201314611"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p122217138616"><a name="p122217138616"></a><a name="p122217138616"></a>0x3c10007</p> 98</td> 99<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1022110130620"><a name="p1022110130620"></a><a name="p1022110130620"></a>ERR_READ_BUFFER</p> 100</td> 101<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1322116131064"><a name="p1322116131064"></a><a name="p1322116131064"></a>Error occurred during buffer reading.</p> 102</td> 103</tr> 104<tr id="row142221813263"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p32221713964"><a name="p32221713964"></a><a name="p32221713964"></a>0x3c10008</p> 105</td> 106<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1622221317615"><a name="p1622221317615"></a><a name="p1622221317615"></a>ERR_NOT_STARTED</p> 107</td> 108<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p11222413963"><a name="p11222413963"></a><a name="p11222413963"></a>Device not started.</p> 109</td> 110</tr> 111<tr id="row1922217130615"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p19222213267"><a name="p19222213267"></a><a name="p19222213267"></a>0x3c100c8</p> 112</td> 113<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p32221213768"><a name="p32221213768"></a><a name="p32221213768"></a>ERR_UNKNOWN</p> 114</td> 115<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p20222171320618"><a name="p20222171320618"></a><a name="p20222171320618"></a>Unknown error.</p> 116</td> 117</tr> 118</tbody> 119</table> 120 121**Figure 1** Position of this repository \(in the dotted blue box\) in the multimedia subsystem<a name="fig9521193714117"></a> 122-in-the-multimedia-subsystem.png "position-of-this-repository-(in-the-dotted-blue-box)-in-the-multimedia-subsystem") 123 124## Directory Structure<a name="section8685144625320"></a> 125 126``` 127foundation/multimedia/utils/lite 128├── interfaces # Header file of the data types and media formats 129└── hals # HAL adaptation APIs 130└── src # Implementation of the data types and media formats 131``` 132 133## Usage<a name="section1648194512427"></a> 134 135Build a single repository in the root directory. 136 137``` 138# Select the development board. 139hb set 140# Build this repository. 141hb build media_service 142``` 143 144## Constraints<a name="section161941989596"></a> 145 146C++ 11 or later 147 148## Repositories Involved<a name="section105062051111614"></a> 149 150[Multimedia subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/multimedia.md) 151 152[camera\_lite](https://gitee.com/openharmony/multimedia_camera_lite) 153 154[camera\_sample\_lite](https://gitee.com/openharmony/applications_sample_camera) 155 156[audio\_lite](https://gitee.com/openharmony/multimedia_audio_lite) 157 158[media\_lite](https://gitee.com/openharmony/multimedia_media_lite) 159 160[media\_utils\_lite](https://gitee.com/openharmony/multimedia_utils_lite) 161 162
README_zh.md
1# 媒体子系统MEDIA\_UTILS\_LITE组件<a name="ZH-CN_TOPIC_0000001127127417"></a> 2 3- [媒体子系统MEDIA\_UTILS\_LITE组件<a name="ZH-CN_TOPIC_0000001127127417"></a>](#媒体子系统media_utils_lite组件) 4 - [简介<a name="section11660541593"></a>](#简介) 5 - [目录<a name="section8685144625320"></a>](#目录) 6 - [使用说明<a name="section1648194512427"></a>](#使用说明) 7 - [约束<a name="section161941989596"></a>](#约束) 8 - [相关仓<a name="section105062051111614"></a>](#相关仓) 9 10## 简介<a name="section11660541593"></a> 11 12提供媒体错误码等公用信息的定义,以及录制、播放音频和视频所需的数据类型。 13 14数据类型: 15 16- SourceType:播放片源类型 17- BufferFlags:Buffer承载数据标识 18- AudioSourceType:定义音频输入源类型枚举 19- AudioCodecFormat:定义音频数据格式枚举 20- AudioStreamType:定义音频流类型枚举 21- AudioBitWidth:定义采样位宽枚举 22 23错误码: 24 25<a name="table7158151314620"></a> 26<table><thead align="left"><tr id="row1722018139620"><th class="cellrowborder" valign="top" width="24.95%" id="mcps1.1.4.1.1"><p id="p172202131066"><a name="p172202131066"></a><a name="p172202131066"></a>错误代码</p> 27</th> 28<th class="cellrowborder" valign="top" width="42.91%" id="mcps1.1.4.1.2"><p id="p5220913569"><a name="p5220913569"></a><a name="p5220913569"></a>宏定义</p> 29</th> 30<th class="cellrowborder" valign="top" width="32.14%" id="mcps1.1.4.1.3"><p id="p1722061317617"><a name="p1722061317617"></a><a name="p1722061317617"></a>描述</p> 31</th> 32</tr> 33</thead> 34<tbody><tr id="row1422020137612"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p202201213562"><a name="p202201213562"></a><a name="p202201213562"></a>0xffffffff</p> 35</td> 36<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p0220171317612"><a name="p0220171317612"></a><a name="p0220171317612"></a>ERR_INVALID_READ</p> 37</td> 38<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p82208133618"><a name="p82208133618"></a><a name="p82208133618"></a>读数据失败</p> 39</td> 40</tr> 41<tr id="row82203139620"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p1122013131168"><a name="p1122013131168"></a><a name="p1122013131168"></a>0x0</p> 42</td> 43<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1322011315617"><a name="p1322011315617"></a><a name="p1322011315617"></a>SUCCESS</p> 44</td> 45<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p142207137613"><a name="p142207137613"></a><a name="p142207137613"></a>操作成功</p> 46</td> 47</tr> 48<tr id="row15220213066"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p14220131313612"><a name="p14220131313612"></a><a name="p14220131313612"></a>0x3c10000</p> 49</td> 50<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1822016133612"><a name="p1822016133612"></a><a name="p1822016133612"></a>ERROR</p> 51</td> 52<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1422071317614"><a name="p1422071317614"></a><a name="p1422071317614"></a>操作失败</p> 53</td> 54</tr> 55<tr id="row3220191311619"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p22201013865"><a name="p22201013865"></a><a name="p22201013865"></a>0x3c10001</p> 56</td> 57<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p52211813262"><a name="p52211813262"></a><a name="p52211813262"></a>ERR_ILLEGAL_STATE</p> 58</td> 59<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p102211913669"><a name="p102211913669"></a><a name="p102211913669"></a>状态错误</p> 60</td> 61</tr> 62<tr id="row1222119131064"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p152211413962"><a name="p152211413962"></a><a name="p152211413962"></a>0x2A05</p> 63</td> 64<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p7221113864"><a name="p7221113864"></a><a name="p7221113864"></a>ERR_INVALID_PARAM</p> 65</td> 66<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p12211813968"><a name="p12211813968"></a><a name="p12211813968"></a>参数无效</p> 67</td> 68</tr> 69<tr id="row1122110131163"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p1222111131761"><a name="p1222111131761"></a><a name="p1222111131761"></a>0x3c10003</p> 70</td> 71<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1622171317617"><a name="p1622171317617"></a><a name="p1622171317617"></a>ERR_EARLY_PREPARE</p> 72</td> 73<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1722117131610"><a name="p1722117131610"></a><a name="p1722117131610"></a>媒体启动提前</p> 74</td> 75</tr> 76<tr id="row1322191310611"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p2221713569"><a name="p2221713569"></a><a name="p2221713569"></a>0x3c10004</p> 77</td> 78<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1422115131164"><a name="p1422115131164"></a><a name="p1422115131164"></a>ERR_SOURCE_NOT_SET</p> 79</td> 80<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1722119131068"><a name="p1722119131068"></a><a name="p1722119131068"></a>媒体源未设置</p> 81</td> 82</tr> 83<tr id="row62216139614"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p182218133619"><a name="p182218133619"></a><a name="p182218133619"></a>0x3c10005</p> 84</td> 85<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p72211813061"><a name="p72211813061"></a><a name="p72211813061"></a>ERR_INVALID_OPERATION</p> 86</td> 87<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p2221161310618"><a name="p2221161310618"></a><a name="p2221161310618"></a>无效操作</p> 88</td> 89</tr> 90<tr id="row2022111312610"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p1722111139618"><a name="p1722111139618"></a><a name="p1722111139618"></a>0x2A09</p> 91</td> 92<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p12211713767"><a name="p12211713767"></a><a name="p12211713767"></a>ERR_NOFREE_CHANNEL</p> 93</td> 94<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1622115137617"><a name="p1622115137617"></a><a name="p1622115137617"></a>通道无空闲</p> 95</td> 96</tr> 97<tr id="row8221201314611"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p122217138616"><a name="p122217138616"></a><a name="p122217138616"></a>0x3c10007</p> 98</td> 99<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1022110130620"><a name="p1022110130620"></a><a name="p1022110130620"></a>ERR_READ_BUFFER</p> 100</td> 101<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p1322116131064"><a name="p1322116131064"></a><a name="p1322116131064"></a>读缓冲区出错</p> 102</td> 103</tr> 104<tr id="row142221813263"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p32221713964"><a name="p32221713964"></a><a name="p32221713964"></a>0x3c10008</p> 105</td> 106<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p1622221317615"><a name="p1622221317615"></a><a name="p1622221317615"></a>ERR_NOT_STARTED</p> 107</td> 108<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p11222413963"><a name="p11222413963"></a><a name="p11222413963"></a>设备未启动</p> 109</td> 110</tr> 111<tr id="row1922217130615"><td class="cellrowborder" valign="top" width="24.95%" headers="mcps1.1.4.1.1 "><p id="p19222213267"><a name="p19222213267"></a><a name="p19222213267"></a>0x3c100c8</p> 112</td> 113<td class="cellrowborder" valign="top" width="42.91%" headers="mcps1.1.4.1.2 "><p id="p32221213768"><a name="p32221213768"></a><a name="p32221213768"></a>ERR_UNKNOWN</p> 114</td> 115<td class="cellrowborder" valign="top" width="32.14%" headers="mcps1.1.4.1.3 "><p id="p20222171320618"><a name="p20222171320618"></a><a name="p20222171320618"></a>未知错误</p> 116</td> 117</tr> 118</tbody> 119</table> 120 121**图 1** 媒体子系统架构(蓝色虚线框是media\_utils)<a name="fig9521193714117"></a> 122.png "媒体子系统架构(蓝色虚线框是media_utils)") 123 124## 目录<a name="section8685144625320"></a> 125 126``` 127foundation/multimedia/utils/lite 128├── interfaces # 数据类型和媒体格式头文件 129└── hals # HAL层适配接口 130└── src # 数据类型和媒体格式实现 131``` 132 133## 使用说明<a name="section1648194512427"></a> 134 135单仓的编译构建,在根目录下进行单仓的构建和编译 136 137``` 138# 开发板选择 139hb set 140# 构建和编译 141hb build media_service 142``` 143 144## 约束<a name="section161941989596"></a> 145 146C++11版本或以上 147 148## 相关仓<a name="section105062051111614"></a> 149 150[媒体子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%AA%92%E4%BD%93%E5%AD%90%E7%B3%BB%E7%BB%9F.md) 151 152[camera\_lite](https://gitee.com/openharmony/multimedia_camera_lite) 153 154[camera\_sample\_lite](https://gitee.com/openharmony/applications_sample_camera) 155 156[audio\_lite](https://gitee.com/openharmony/multimedia_audio_lite) 157 158[media\_lite](https://gitee.com/openharmony/multimedia_media_lite) 159 160[media\_utils\_lite](https://gitee.com/openharmony/multimedia_utils_lite) 161 162