1e41f4b71Sopenharmony_ci# Audio/Video Recording Development<a name="EN-US_TOPIC_0000001052170566"></a> 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci## When to Use<a name="section186634310418"></a> 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ciTo record audios and videos, use APIs described in this section to set the encoding format, sampling rate, and bit rate, and encapsulate output files based on the parameters. 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci## Available APIs<a name="section125479541744"></a> 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ciThe following table describes APIs available for audio and video recording. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci**Table 1** APIs available for media recording 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci<a name="table1731550155318"></a> 14e41f4b71Sopenharmony_ci<table><thead align="left"><tr id="row4419501537"><th class="cellrowborder" valign="top" width="7.5200000000000005%" id="mcps1.2.4.1.1"><p id="p531591918714"><a name="p531591918714"></a><a name="p531591918714"></a>API</p> 15e41f4b71Sopenharmony_ci</th> 16e41f4b71Sopenharmony_ci<th class="cellrowborder" valign="top" width="53.06999999999999%" id="mcps1.2.4.1.2"><p id="p1325118401591"><a name="p1325118401591"></a><a name="p1325118401591"></a>Function</p> 17e41f4b71Sopenharmony_ci</th> 18e41f4b71Sopenharmony_ci<th class="cellrowborder" valign="top" width="39.410000000000004%" id="mcps1.2.4.1.3"><p id="p1251184013912"><a name="p1251184013912"></a><a name="p1251184013912"></a>Description</p> 19e41f4b71Sopenharmony_ci</th> 20e41f4b71Sopenharmony_ci</tr> 21e41f4b71Sopenharmony_ci</thead> 22e41f4b71Sopenharmony_ci<tbody><tr id="row1746172917474"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p1712917411310"><a name="p1712917411310"></a><a name="p1712917411310"></a>Recorder</p> 23e41f4b71Sopenharmony_ci</td> 24e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p925111401895"><a name="p925111401895"></a><a name="p925111401895"></a>int32_t SetVideoSource(VideoSourceType source, int32_t &sourceId)</p> 25e41f4b71Sopenharmony_ci</td> 26e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p152511640691"><a name="p152511640691"></a><a name="p152511640691"></a>Sets a video source for recording.</p> 27e41f4b71Sopenharmony_ci</td> 28e41f4b71Sopenharmony_ci</tr> 29e41f4b71Sopenharmony_ci<tr id="row10992232154714"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p8129156111319"><a name="p8129156111319"></a><a name="p8129156111319"></a>Recorder</p> 30e41f4b71Sopenharmony_ci</td> 31e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p1776173711119"><a name="p1776173711119"></a><a name="p1776173711119"></a>int32_t SetVideoEncoder(int32_t sourceId, VideoCodecFormat encoder)</p> 32e41f4b71Sopenharmony_ci</td> 33e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p127623791116"><a name="p127623791116"></a><a name="p127623791116"></a>Sets a video encoder for recording.</p> 34e41f4b71Sopenharmony_ci</td> 35e41f4b71Sopenharmony_ci</tr> 36e41f4b71Sopenharmony_ci<tr id="row933265824817"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p944717831310"><a name="p944717831310"></a><a name="p944717831310"></a>Recorder</p> 37e41f4b71Sopenharmony_ci</td> 38e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p6769371110"><a name="p6769371110"></a><a name="p6769371110"></a>int32_t SetVideoSize(int32_t sourceId, int32_t width, int32_t height)</p> 39e41f4b71Sopenharmony_ci</td> 40e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p17761137181115"><a name="p17761137181115"></a><a name="p17761137181115"></a>Sets the width and height of the video to record.</p> 41e41f4b71Sopenharmony_ci</td> 42e41f4b71Sopenharmony_ci</tr> 43e41f4b71Sopenharmony_ci<tr id="row124766591190"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p18795111319132"><a name="p18795111319132"></a><a name="p18795111319132"></a>Recorder</p> 44e41f4b71Sopenharmony_ci</td> 45e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p476113791113"><a name="p476113791113"></a><a name="p476113791113"></a>int32_t SetVideoFrameRate(int32_t sourceId, int32_t frameRate)</p> 46e41f4b71Sopenharmony_ci</td> 47e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p107613711114"><a name="p107613711114"></a><a name="p107613711114"></a>Sets the frame rate of the video to record.</p> 48e41f4b71Sopenharmony_ci</td> 49e41f4b71Sopenharmony_ci</tr> 50e41f4b71Sopenharmony_ci<tr id="row0260140101"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p149767151136"><a name="p149767151136"></a><a name="p149767151136"></a>Recorder</p> 51e41f4b71Sopenharmony_ci</td> 52e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p1076203717112"><a name="p1076203717112"></a><a name="p1076203717112"></a>int32_t SetVideoEncodingBitRate(int32_t sourceId, int32_t rate)</p> 53e41f4b71Sopenharmony_ci</td> 54e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p0761637141116"><a name="p0761637141116"></a><a name="p0761637141116"></a>Sets the encoding bit rate of the video to record.</p> 55e41f4b71Sopenharmony_ci</td> 56e41f4b71Sopenharmony_ci</tr> 57e41f4b71Sopenharmony_ci<tr id="row22024106107"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p177997175138"><a name="p177997175138"></a><a name="p177997175138"></a>Recorder</p> 58e41f4b71Sopenharmony_ci</td> 59e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p5761737171112"><a name="p5761737171112"></a><a name="p5761737171112"></a>int32_t SetCaptureRate(int32_t sourceId, double fps)</p> 60e41f4b71Sopenharmony_ci</td> 61e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p1761737151111"><a name="p1761737151111"></a><a name="p1761737151111"></a>Sets the video capture rate.</p> 62e41f4b71Sopenharmony_ci</td> 63e41f4b71Sopenharmony_ci</tr> 64e41f4b71Sopenharmony_ci<tr id="row82261213191012"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p94271121181318"><a name="p94271121181318"></a><a name="p94271121181318"></a>Recorder</p> 65e41f4b71Sopenharmony_ci</td> 66e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p1129110237225"><a name="p1129110237225"></a><a name="p1129110237225"></a>std::shared_ptr<OHOS::Surface> GetSurface(int32_t sourceId);</p> 67e41f4b71Sopenharmony_ci</td> 68e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p1876163710115"><a name="p1876163710115"></a><a name="p1876163710115"></a>Obtains the surface of the video source.</p> 69e41f4b71Sopenharmony_ci</td> 70e41f4b71Sopenharmony_ci</tr> 71e41f4b71Sopenharmony_ci<tr id="row1366261518102"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p13158202312139"><a name="p13158202312139"></a><a name="p13158202312139"></a>Recorder</p> 72e41f4b71Sopenharmony_ci</td> 73e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p4761377117"><a name="p4761377117"></a><a name="p4761377117"></a>int32_t SetAudioSource(AudioSourceType source, int32_t &sourceId)</p> 74e41f4b71Sopenharmony_ci</td> 75e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p5765377117"><a name="p5765377117"></a><a name="p5765377117"></a>Sets an audio source for recording.</p> 76e41f4b71Sopenharmony_ci</td> 77e41f4b71Sopenharmony_ci</tr> 78e41f4b71Sopenharmony_ci<tr id="row7142161861017"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p2897162514139"><a name="p2897162514139"></a><a name="p2897162514139"></a>Recorder</p> 79e41f4b71Sopenharmony_ci</td> 80e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p8766372113"><a name="p8766372113"></a><a name="p8766372113"></a>int32_t SetAudioEncoder(int32_t sourceId, AudioCodecFormat encoder)</p> 81e41f4b71Sopenharmony_ci</td> 82e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p127693731115"><a name="p127693731115"></a><a name="p127693731115"></a>Sets an audio encoder for recording.</p> 83e41f4b71Sopenharmony_ci</td> 84e41f4b71Sopenharmony_ci</tr> 85e41f4b71Sopenharmony_ci<tr id="row2053832071012"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p952618270132"><a name="p952618270132"></a><a name="p952618270132"></a>Recorder</p> 86e41f4b71Sopenharmony_ci</td> 87e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p976937141112"><a name="p976937141112"></a><a name="p976937141112"></a>int32_t SetAudioSampleRate(int32_t sourceId, int32_t rate)</p> 88e41f4b71Sopenharmony_ci</td> 89e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p1476183781110"><a name="p1476183781110"></a><a name="p1476183781110"></a>Sets the audio sampling rate for recording.</p> 90e41f4b71Sopenharmony_ci</td> 91e41f4b71Sopenharmony_ci</tr> 92e41f4b71Sopenharmony_ci<tr id="row55394243108"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p677717304137"><a name="p677717304137"></a><a name="p677717304137"></a>Recorder</p> 93e41f4b71Sopenharmony_ci</td> 94e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p47703781114"><a name="p47703781114"></a><a name="p47703781114"></a>int32_t SetAudioChannels(int32_t sourceId, int32_t num)</p> 95e41f4b71Sopenharmony_ci</td> 96e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p16772037121111"><a name="p16772037121111"></a><a name="p16772037121111"></a>Sets the number of audio channels for recording.</p> 97e41f4b71Sopenharmony_ci</td> 98e41f4b71Sopenharmony_ci</tr> 99e41f4b71Sopenharmony_ci<tr id="row191791427121015"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p1759610327139"><a name="p1759610327139"></a><a name="p1759610327139"></a>Recorder</p> 100e41f4b71Sopenharmony_ci</td> 101e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p37723781118"><a name="p37723781118"></a><a name="p37723781118"></a>int32_t SetAudioEncodingBitRate(int32_t sourceId, int32_t bitRate)</p> 102e41f4b71Sopenharmony_ci</td> 103e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p17771378113"><a name="p17771378113"></a><a name="p17771378113"></a>Sets the encoding bit rate of the audio to record.</p> 104e41f4b71Sopenharmony_ci</td> 105e41f4b71Sopenharmony_ci</tr> 106e41f4b71Sopenharmony_ci<tr id="row83478305107"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p16968193391311"><a name="p16968193391311"></a><a name="p16968193391311"></a>Recorder</p> 107e41f4b71Sopenharmony_ci</td> 108e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p1536305312114"><a name="p1536305312114"></a><a name="p1536305312114"></a>int32_t SetMaxDuration(int32_t duration)</p> 109e41f4b71Sopenharmony_ci</td> 110e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p93634532118"><a name="p93634532118"></a><a name="p93634532118"></a>Sets the maximum duration of an output file, in seconds.</p> 111e41f4b71Sopenharmony_ci</td> 112e41f4b71Sopenharmony_ci</tr> 113e41f4b71Sopenharmony_ci<tr id="row592711339103"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p947593614139"><a name="p947593614139"></a><a name="p947593614139"></a>Recorder</p> 114e41f4b71Sopenharmony_ci</td> 115e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p1436314531119"><a name="p1436314531119"></a><a name="p1436314531119"></a>int32_t SetOutputFormat(OutputFormatType format)</p> 116e41f4b71Sopenharmony_ci</td> 117e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p1936315331119"><a name="p1936315331119"></a><a name="p1936315331119"></a>Sets the output file format.</p> 118e41f4b71Sopenharmony_ci</td> 119e41f4b71Sopenharmony_ci</tr> 120e41f4b71Sopenharmony_ci<tr id="row74771923552"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p164789217556"><a name="p164789217556"></a><a name="p164789217556"></a>Recorder</p> 121e41f4b71Sopenharmony_ci</td> 122e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p14782215557"><a name="p14782215557"></a><a name="p14782215557"></a>int32_t SetOutputPath(const string &path);</p> 123e41f4b71Sopenharmony_ci</td> 124e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p1847822165510"><a name="p1847822165510"></a><a name="p1847822165510"></a>Sets the output file path.</p> 125e41f4b71Sopenharmony_ci</td> 126e41f4b71Sopenharmony_ci</tr> 127e41f4b71Sopenharmony_ci<tr id="row15219377106"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p552463917132"><a name="p552463917132"></a><a name="p552463917132"></a>Recorder</p> 128e41f4b71Sopenharmony_ci</td> 129e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p33631253121116"><a name="p33631253121116"></a><a name="p33631253121116"></a>int32_t SetOutputFile(int32_t fd)</p> 130e41f4b71Sopenharmony_ci</td> 131e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p336335351111"><a name="p336335351111"></a><a name="p336335351111"></a>Sets the file descriptor of the output file.</p> 132e41f4b71Sopenharmony_ci</td> 133e41f4b71Sopenharmony_ci</tr> 134e41f4b71Sopenharmony_ci<tr id="row18755438101013"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p121613438137"><a name="p121613438137"></a><a name="p121613438137"></a>Recorder</p> 135e41f4b71Sopenharmony_ci</td> 136e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p14363175317114"><a name="p14363175317114"></a><a name="p14363175317114"></a>int32_t SetNextOutputFile(int32_t fd);</p> 137e41f4b71Sopenharmony_ci</td> 138e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p236375361119"><a name="p236375361119"></a><a name="p236375361119"></a>Sets the file descriptor of the next output file.</p> 139e41f4b71Sopenharmony_ci</td> 140e41f4b71Sopenharmony_ci</tr> 141e41f4b71Sopenharmony_ci<tr id="row14480241101010"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p07641457131"><a name="p07641457131"></a><a name="p07641457131"></a>Recorder</p> 142e41f4b71Sopenharmony_ci</td> 143e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p2363145317112"><a name="p2363145317112"></a><a name="p2363145317112"></a>int32_t SetMaxFileSize(int64_t size)</p> 144e41f4b71Sopenharmony_ci</td> 145e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p43646539114"><a name="p43646539114"></a><a name="p43646539114"></a>Sets the maximum size of an output file, in bytes.</p> 146e41f4b71Sopenharmony_ci</td> 147e41f4b71Sopenharmony_ci</tr> 148e41f4b71Sopenharmony_ci<tr id="row835564418101"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p2104174817136"><a name="p2104174817136"></a><a name="p2104174817136"></a>Recorder</p> 149e41f4b71Sopenharmony_ci</td> 150e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p15364195315118"><a name="p15364195315118"></a><a name="p15364195315118"></a>int32_t SetRecorderCallback(const std::shared_ptr<RecorderCallback> &callback)</p> 151e41f4b71Sopenharmony_ci</td> 152e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p1636412538119"><a name="p1636412538119"></a><a name="p1636412538119"></a>Registers a recording listener.</p> 153e41f4b71Sopenharmony_ci</td> 154e41f4b71Sopenharmony_ci</tr> 155e41f4b71Sopenharmony_ci<tr id="row780144661014"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p098351816145"><a name="p098351816145"></a><a name="p098351816145"></a>Recorder</p> 156e41f4b71Sopenharmony_ci</td> 157e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p173641153151110"><a name="p173641153151110"></a><a name="p173641153151110"></a>int32_t Prepare()</p> 158e41f4b71Sopenharmony_ci</td> 159e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p636495341115"><a name="p636495341115"></a><a name="p636495341115"></a>Prepares for recording.</p> 160e41f4b71Sopenharmony_ci</td> 161e41f4b71Sopenharmony_ci</tr> 162e41f4b71Sopenharmony_ci<tr id="row11537184971012"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p12815320121418"><a name="p12815320121418"></a><a name="p12815320121418"></a>Recorder</p> 163e41f4b71Sopenharmony_ci</td> 164e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p53641053151113"><a name="p53641053151113"></a><a name="p53641053151113"></a>int32_t Start()</p> 165e41f4b71Sopenharmony_ci</td> 166e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p53642536114"><a name="p53642536114"></a><a name="p53642536114"></a>Starts recording.</p> 167e41f4b71Sopenharmony_ci</td> 168e41f4b71Sopenharmony_ci</tr> 169e41f4b71Sopenharmony_ci<tr id="row158225271018"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p132682201410"><a name="p132682201410"></a><a name="p132682201410"></a>Recorder</p> 170e41f4b71Sopenharmony_ci</td> 171e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p936485351112"><a name="p936485351112"></a><a name="p936485351112"></a>int32_t Pause()</p> 172e41f4b71Sopenharmony_ci</td> 173e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p183641253141110"><a name="p183641253141110"></a><a name="p183641253141110"></a>Pauses recording.</p> 174e41f4b71Sopenharmony_ci</td> 175e41f4b71Sopenharmony_ci</tr> 176e41f4b71Sopenharmony_ci<tr id="row15938254131016"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p12615824111414"><a name="p12615824111414"></a><a name="p12615824111414"></a>Recorder</p> 177e41f4b71Sopenharmony_ci</td> 178e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p123641153191115"><a name="p123641153191115"></a><a name="p123641153191115"></a>int32_t Resume()</p> 179e41f4b71Sopenharmony_ci</td> 180e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p0364195331116"><a name="p0364195331116"></a><a name="p0364195331116"></a>Resumes recording.</p> 181e41f4b71Sopenharmony_ci</td> 182e41f4b71Sopenharmony_ci</tr> 183e41f4b71Sopenharmony_ci<tr id="row193212569102"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p15373202761415"><a name="p15373202761415"></a><a name="p15373202761415"></a>Recorder</p> 184e41f4b71Sopenharmony_ci</td> 185e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p63641653101116"><a name="p63641653101116"></a><a name="p63641653101116"></a>int32_t Stop(bool block)</p> 186e41f4b71Sopenharmony_ci</td> 187e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p1364053171112"><a name="p1364053171112"></a><a name="p1364053171112"></a>Stops recording.</p> 188e41f4b71Sopenharmony_ci</td> 189e41f4b71Sopenharmony_ci</tr> 190e41f4b71Sopenharmony_ci<tr id="row1392185911103"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p199881728181420"><a name="p199881728181420"></a><a name="p199881728181420"></a>Recorder</p> 191e41f4b71Sopenharmony_ci</td> 192e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p143641539114"><a name="p143641539114"></a><a name="p143641539114"></a>int32_t Reset();</p> 193e41f4b71Sopenharmony_ci</td> 194e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p20364353131115"><a name="p20364353131115"></a><a name="p20364353131115"></a>Resets recording.</p> 195e41f4b71Sopenharmony_ci</td> 196e41f4b71Sopenharmony_ci</tr> 197e41f4b71Sopenharmony_ci<tr id="row816014171116"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p193259303141"><a name="p193259303141"></a><a name="p193259303141"></a>Recorder</p> 198e41f4b71Sopenharmony_ci</td> 199e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p183649535111"><a name="p183649535111"></a><a name="p183649535111"></a>int32_t Release()</p> 200e41f4b71Sopenharmony_ci</td> 201e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p1036420534111"><a name="p1036420534111"></a><a name="p1036420534111"></a>Releases recording resources.</p> 202e41f4b71Sopenharmony_ci</td> 203e41f4b71Sopenharmony_ci</tr> 204e41f4b71Sopenharmony_ci<tr id="row115981253112"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p1466416312142"><a name="p1466416312142"></a><a name="p1466416312142"></a>Recorder</p> 205e41f4b71Sopenharmony_ci</td> 206e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p17364053171110"><a name="p17364053171110"></a><a name="p17364053171110"></a>int32_t SetFileSplitDuration(FileSplitType type, int64_t timestamp, uint32_t duration)</p> 207e41f4b71Sopenharmony_ci</td> 208e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p8364205361117"><a name="p8364205361117"></a><a name="p8364205361117"></a>Sets the duration to split an output file.</p> 209e41f4b71Sopenharmony_ci</td> 210e41f4b71Sopenharmony_ci</tr> 211e41f4b71Sopenharmony_ci<tr id="row1677310915111"><td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.2.4.1.1 "><p id="p1028316364149"><a name="p1028316364149"></a><a name="p1028316364149"></a>Recorder</p> 212e41f4b71Sopenharmony_ci</td> 213e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="53.06999999999999%" headers="mcps1.2.4.1.2 "><p id="p1936411531111"><a name="p1936411531111"></a><a name="p1936411531111"></a>int32_t SetParameter(int32_t sourceId, const Format &format)</p> 214e41f4b71Sopenharmony_ci</td> 215e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="39.410000000000004%" headers="mcps1.2.4.1.3 "><p id="p13657530118"><a name="p13657530118"></a><a name="p13657530118"></a>Sets an extended parameter for recording.</p> 216e41f4b71Sopenharmony_ci</td> 217e41f4b71Sopenharmony_ci</tr> 218e41f4b71Sopenharmony_ci</tbody> 219e41f4b71Sopenharmony_ci</table> 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci## Limitations and Constraints<a name="section1165911177314"></a> 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_ciNone 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci## How to Develop<a name="section34171333656"></a> 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci1. Create a **Recorder** instance. 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci ``` 230e41f4b71Sopenharmony_ci Recorder *recorder = new Recorder(); 231e41f4b71Sopenharmony_ci ``` 232e41f4b71Sopenharmony_ci 233e41f4b71Sopenharmony_ci2. Sets parameters for the **Recorder** instance, including the media source information, encoding format, sampling rate, bit rate, and video width and height. 234e41f4b71Sopenharmony_ci 235e41f4b71Sopenharmony_ci ``` 236e41f4b71Sopenharmony_ci int32_t sampleRate = 48000; 237e41f4b71Sopenharmony_ci int32_t channelCount = 1; 238e41f4b71Sopenharmony_ci AudioCodecFormat audioFormat = AAC_LC; 239e41f4b71Sopenharmony_ci AudioSourceType inputSource = AUDIO_MIC; 240e41f4b71Sopenharmony_ci int32_t audioEncodingBitRate = sampleRate; 241e41f4b71Sopenharmony_ci VideoSourceType source = VIDEO_SOURCE_SURFACE_ES; 242e41f4b71Sopenharmony_ci int32_t frameRate = 30; 243e41f4b71Sopenharmony_ci double fps = 30; 244e41f4b71Sopenharmony_ci int32_t rate = 4096; 245e41f4b71Sopenharmony_ci int32_t sourceId = 0; 246e41f4b71Sopenharmony_ci int32_t audioSourceId = 0; 247e41f4b71Sopenharmony_ci int32_t width = 1920; 248e41f4b71Sopenharmony_ci int32_t height = 1080; 249e41f4b71Sopenharmony_ci VideoCodecFormat encoder = H264; 250e41f4b71Sopenharmony_ci recorder->SetVideoSource(source, sourceId); // Set the video source and obtain the source ID. 251e41f4b71Sopenharmony_ci recorder->SetVideoEncoder(sourceId, encoder); // Set the video encoding format. 252e41f4b71Sopenharmony_ci recorder->SetVideoSize(sourceId, width, height); // Set the video width and height. 253e41f4b71Sopenharmony_ci recorder->SetVideoFrameRate(sourceId, frameRate); // Set the video frame rate. 254e41f4b71Sopenharmony_ci recorder->SetVideoEncodingBitRate(sourceId, rate); // Set the video encoding bit rate. 255e41f4b71Sopenharmony_ci recorder->SetCaptureRate(sourceId, fps); // Set the capture rate for video frames. 256e41f4b71Sopenharmony_ci recorder->SetAudioSource(inputSource, audioSourceId); // Set the audio source and obtain the source ID. 257e41f4b71Sopenharmony_ci recorder->SetAudioEncoder(audioSourceId, audioFormat); // Set the audio encoding format. 258e41f4b71Sopenharmony_ci recorder->SetAudioSampleRate(audioSourceId, sampleRate); // Set the audio sampling rate. 259e41f4b71Sopenharmony_ci recorder->SetAudioChannels(audioSourceId, channelCount); // Set the number of audio channels. 260e41f4b71Sopenharmony_ci recorder->SetAudioEncodingBitRate(audioSourceId, audioEncodingBitRate); // Set the audio encoding bit rate. 261e41f4b71Sopenharmony_ci ``` 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci3. Prepare the **Recorder** instance for recording. 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci ``` 266e41f4b71Sopenharmony_ci recorder->Prepare(); // Prepare for recording. 267e41f4b71Sopenharmony_ci ``` 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci4. Start recording. The **Recorder** instance starts recording based on the audio and video sources. 270e41f4b71Sopenharmony_ci 271e41f4b71Sopenharmony_ci ``` 272e41f4b71Sopenharmony_ci recorder->Start(); // Start recording. 273e41f4b71Sopenharmony_ci ``` 274e41f4b71Sopenharmony_ci 275e41f4b71Sopenharmony_ci5. Stop recording and release resources. 276e41f4b71Sopenharmony_ci 277e41f4b71Sopenharmony_ci ``` 278e41f4b71Sopenharmony_ci recorder->Stop(); // Stop recording. 279e41f4b71Sopenharmony_ci recorder->Release(); // Release recording resources. 280e41f4b71Sopenharmony_ci ``` 281e41f4b71Sopenharmony_ci 282e41f4b71Sopenharmony_ci 283