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 &amp;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&lt;OHOS::Surface&gt; 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 &amp;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 &amp;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&lt;RecorderCallback&gt; &amp;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 &amp;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