audio.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  6. <meta name="HandheldFriendly" content="true">
  7. <meta name="MobileOptimized" content="320">
  8. <title>Audio Document</title>
  9. <link rel="stylesheet" type="text/css" href="res/doc.css" charset="utf-8">
  10. <link rel="stylesheet" type="text/css" href="res/prettify.sons.css" charset="utf-8">
  11. <script type="text/javascript" src="res/doc.js" charset="utf-8"></script><script type="text/javascript" src="res/prettify.js" charset="utf-8"></script>
  12. </head>
  13. <body><div id="content" class="content">
  14. <h1><a name="plus.audio">audio</a></h1>
  15. <p>Audio模块用于提供音频的录制和播放功能,可调用系统的麦克风设备进行录音操作,也可调用系统的扬声器设备播放音频文件。通过plus.audio获取音频管理对象。</p>
  16. <h2>常量:</h2>
  17. <ul>
  18. <li>
  19. <a href="#plus.audio.ROUTE_SPEAKER">ROUTE_SPEAKER</a>: 设备的扬声器音频输出线路</li>
  20. <li>
  21. <a href="#plus.audio.ROUTE_EARPIECE">ROUTE_EARPIECE</a>: 设备听筒音频输出线路</li>
  22. </ul>
  23. <h2>方法:</h2>
  24. <ul>
  25. <li>
  26. <a href="#plus.audio.getRecorder">getRecorder</a>: 获取当前设备的录音对象</li>
  27. <li>
  28. <a href="#plus.audio.createPlayer">createPlayer</a>: 创建音频播放器对象</li>
  29. </ul>
  30. <h2>对象:</h2>
  31. <ul>
  32. <li>
  33. <a href="#plus.audio.AudioRecorder">AudioRecorder</a>: 录音对象</li>
  34. <li>
  35. <a href="#plus.audio.AudioPlayer">AudioPlayer</a>: 音频播放对象</li>
  36. <li>
  37. <a href="#plus.audio.AudioPlayerEvent">AudioPlayerEvent</a>: 音频播放控件事件类型</li>
  38. <li>
  39. <a href="#plus.audio.AudioPlayerStyles">AudioPlayerStyles</a>: 音频播放对象的参数</li>
  40. <li>
  41. <a href="#plus.audio.AudioRecorderStyles">AudioRecorderStyles</a>: 音频录制的参数</li>
  42. </ul>
  43. <h2>回调方法:</h2>
  44. <ul>
  45. <li>
  46. <a href="#plus.audio.RecordSuccessCallback">RecordSuccessCallback</a>: 录音操作成功回调</li>
  47. <li>
  48. <a href="#plus.audio.PlaySuccessCallback">PlaySuccessCallback</a>: 播放音频文件操作成功回调</li>
  49. <li>
  50. <a href="#plus.audio.AudioErrorCallback">AudioErrorCallback</a>: 音频操作失败回调</li>
  51. </ul>
  52. <h2>权限:</h2>
  53. <p>5+功能模块(permissions)</p>
  54. <pre class="prettyprint linenums">
  55. {
  56. // ...
  57. "permissions":{
  58. // ...
  59. "Audio": {
  60. "description": "音频"
  61. }
  62. }
  63. }
  64. </pre>
  65. <h1><a name="plus.audio.AudioRecorder">AudioRecorder</a></h1>
  66. <p>录音对象</p>
  67. <pre class="prettyprint linenums">
  68. interface AudioRecorder {
  69. readonly attribute String[] supportedSamplerates;
  70. readonly attribute String[] supportedFormats;
  71. function record( option, successCB, errorCB );
  72. function stop();
  73. }
  74. </pre>
  75. <h2>属性:</h2>
  76. <ul>
  77. <li>
  78. <a href="#plus.audio.AudioRecorder.supportedSamplerates">supportedSamplerates</a>: 数组,设备录音支持的采用率</li>
  79. <li>
  80. <a href="#plus.audio.AudioRecorder.supportedFormats">supportedFormats</a>: 数组,设备录音支持的文件格式</li>
  81. </ul>
  82. <h2>方法:</h2>
  83. <ul>
  84. <li>
  85. <a href="#plus.audio.AudioRecorder.record">record</a>: 调用设备麦克风进行录音操作</li>
  86. <li>
  87. <a href="#plus.audio.AudioRecorder.stop">stop</a>: 结束录音操作</li>
  88. </ul>
  89. <h1><a name="plus.audio.AudioPlayer">AudioPlayer</a></h1>
  90. <p>音频播放对象</p>
  91. <pre class="prettyprint linenums">
  92. interface AudioPlayer {
  93. function void close();
  94. function Boolean isPaused();
  95. function void play(successCB, errorCB);
  96. function void pause();
  97. function void resume();
  98. function void stop();
  99. function void seekTo(position);
  100. function Number getBuffered();
  101. function Number getDuration();
  102. function Number getPosition();
  103. function void setRoute(route);
  104. function void setSessionCategory(category);
  105. }
  106. </pre>
  107. <h2>说明:</h2>
  108. <p class="des">
  109. 音频播放对象,用于音频文件的播放。不能通过new方法直接创建,只能通过audio.createPlayer方法创建。
  110. </p>
  111. <h2>方法:</h2>
  112. <ul>
  113. <li>
  114. <a href="#plus.audio.AudioPlayer.addEventListener">addEventListener</a>: 添加事件监听器</li>
  115. <li>
  116. <a href="#plus.audio.AudioPlayer.close">close</a>: 关闭音频播放对象</li>
  117. <li>
  118. <a href="#plus.audio.AudioPlayer.getBuffered">getBuffered</a>: 音频缓冲的时间点</li>
  119. <li>
  120. <a href="#plus.audio.AudioPlayer.getDuration">getDuration</a>: 获取音频的总长度</li>
  121. <li>
  122. <a href="#plus.audio.AudioPlayer.getPosition">getPosition</a>: 获取音频的当前播放位置</li>
  123. <li>
  124. <a href="#plus.audio.AudioPlayer.getStyles">getStyles</a>: 音频播放的参数</li>
  125. <li>
  126. <a href="#plus.audio.AudioPlayer.isPaused">isPaused</a>: 当前是否暂停或停止状态</li>
  127. <li>
  128. <a href="#plus.audio.AudioPlayer.play">play</a>: 播放音频</li>
  129. <li>
  130. <a href="#plus.audio.AudioPlayer.pause">pause</a>: 暂停播放</li>
  131. <li>
  132. <a href="#plus.audio.AudioPlayer.removeEventListener">removeEventListener</a>: 移除事件监听器</li>
  133. <li>
  134. <a href="#plus.audio.AudioPlayer.resume">resume</a>: 恢复播放</li>
  135. <li>
  136. <a href="#plus.audio.AudioPlayer.seekTo">seekTo</a>: 跳到指定位置</li>
  137. <li>
  138. <a href="#plus.audio.AudioPlayer.stop">stop</a>: 停止播放</li>
  139. <li>
  140. <a href="#plus.audio.AudioPlayer.setRoute">setRoute</a>: 音频输出线路</li>
  141. <li>
  142. <a href="#plus.audio.AudioPlayer.setSessionCategory">setSessionCategory</a>: 设置音频播放模式</li>
  143. <li>
  144. <a href="#plus.audio.AudioPlayer.setStyles">setStyles</a>: 设置音频播放的参数</li>
  145. </ul>
  146. <h1><a name="plus.audio.AudioPlayerEvent">AudioPlayerEvent</a></h1>
  147. <p>音频播放控件事件类型</p>
  148. <h2>常量:</h2>
  149. <ul>
  150. <li>"canplay": <em>(<font class="type">String</font>
  151. 类型
  152. )</em>音频可以播放事件<br>
  153. </li>
  154. <li>"play": <em>(<font class="type">String</font>
  155. 类型
  156. )</em>音频播放事件<br>
  157. </li>
  158. <li>"pause": <em>(<font class="type">String</font>
  159. 类型
  160. )</em>音频暂停事件<br>
  161. </li>
  162. <li>"stop": <em>(<font class="type">String</font>
  163. 类型
  164. )</em>音频停止事件<br>
  165. </li>
  166. <li>"ended": <em>(<font class="type">String</font>
  167. 类型
  168. )</em>音频自然播放结束事件<br>
  169. </li>
  170. <li>"error": <em>(<font class="type">String</font>
  171. 类型
  172. )</em>音频播放错误事件<br>
  173. </li>
  174. <li>"waiting": <em>(<font class="type">String</font>
  175. 类型
  176. )</em>音频加载中事件<br>
  177. </li>
  178. <li>"seeking": <em>(<font class="type">String</font>
  179. 类型
  180. )</em>音频进行seek操作事件<br>
  181. </li>
  182. <li>"seeked": <em>(<font class="type">String</font>
  183. 类型
  184. )</em>音频完成seek操作事件<br>
  185. </li>
  186. <li>"prev": <em>(<font class="type">String</font>
  187. 类型
  188. )</em>上一曲操作事件<br><p>
  189. 用户在后台播放控制器上点击上一曲按钮时触发,未开启后台控制器则不触发此事件。
  190. </p>
  191. </li>
  192. <li>"next": <em>(<font class="type">String</font>
  193. 类型
  194. )</em>下一曲操作事件<br><p>
  195. 用户在后台播放控制器上点击下一曲按钮时触发,未开启后台控制器则不触发此事件。
  196. </p>
  197. </li>
  198. </ul>
  199. <h1><a name="plus.audio.AudioPlayerStyles">AudioPlayerStyles</a></h1>
  200. <p>音频播放对象的参数</p>
  201. <h2>属性:</h2>
  202. <ul>
  203. <li>autoplay: <em>(<font class="type">Boolean</font>
  204. 类型
  205. )</em>是否自动开始播放<br><p>
  206. true - 自动开始播放;
  207. false - 不自动开始播放。
  208. 默认值为false。
  209. </p>
  210. </li>
  211. <li>backgroundControl: <em>(<font class="type">Boolean</font>
  212. 类型
  213. )</em>是否开启后台控制器<br><p>
  214. 开启后应用切换到后台可继续播放音频。
  215. iOS平台在系统锁屏界面显示播放控件;Android平台暂不支持。
  216. </p>
  217. </li>
  218. <li>coverImgUrl: <em>(<font class="type">String</font>
  219. 类型
  220. )</em>封面图地址<br><p>
  221. 在后台播放控制器上显示,未开启后台控制器则不显示。
  222. </p>
  223. </li>
  224. <li>epname: <em>(<font class="type">String</font>
  225. 类型
  226. )</em>专辑名<br><p>
  227. 在后台播放控制器上显示,未开启后台控制器则不显示。
  228. </p>
  229. </li>
  230. <li>loop: <em>(<font class="type">Boolean</font>
  231. 类型
  232. )</em>是否循环播放<br><p>
  233. true - 循环播放;
  234. false - 不循环播放。
  235. 默认值为false。
  236. </p>
  237. </li>
  238. <li>singer: <em>(<font class="type">String</font>
  239. 类型
  240. )</em>歌手名<br><p>
  241. 在后台播放控制器上显示,未开启后台控制器则不显示。
  242. </p>
  243. </li>
  244. <li>src: <em>(<font class="type">String</font>
  245. 类型
  246. )</em>音频资源的地址<br><p>
  247. 支持本地路径和网络路径。
  248. </p>
  249. </li>
  250. <li>startTime: <em>(<font class="type">Number</font>
  251. 类型
  252. )</em>开始播放的位置<br><p>
  253. 单位为秒(s),默认值为0。
  254. </p>
  255. </li>
  256. <li>title: <em>(<font class="type">String</font>
  257. 类型
  258. )</em>音频标题<br><p>
  259. 在后台播放控制器上显示,未开启后台控制器则不显示。
  260. </p>
  261. </li>
  262. <li>volume: <em>(<font class="type">Number</font>
  263. 类型
  264. )</em>音量<br><p>
  265. 取值范围为0-1,默认值为1。
  266. </p>
  267. </li>
  268. </ul>
  269. <h1><a name="plus.audio.AudioRecorderStyles">AudioRecorderStyles</a></h1>
  270. <p>音频录制的参数</p>
  271. <h2>属性:</h2>
  272. <ul>
  273. <li>channels: <em>(<font class="type">String</font>
  274. 类型
  275. )</em>录音声道<br><p>
  276. 可取值:
  277. "mono" - 单声道录音;
  278. "stereo" - 立体声道录音。
  279. 默认值为"mono"。
  280. </p>
  281. </li>
  282. <li>filename: <em>(<font class="type">String</font>
  283. 类型
  284. )</em>保存录音文件的路径<br><p>
  285. 可设置具体文件名,也可只设置路径,如果以“/”结尾则表明是路径,文件名由录音程序自动生成。
  286. 如未设置则使用默认目录生成随机文件名称,默认目录为应用%APPID%下的documents目录。
  287. </p>
  288. </li>
  289. <li>samplerate: <em>(<font class="type">String</font>
  290. 类型
  291. )</em>录音文件的采样率<br><p>
  292. 需通过supportedSamplerates属性获取设备支持的采样率,若设置无效的值,则使用系统默认的采样率。</p>
  293. </li>
  294. <li>format: <em>(<font class="type">String</font>
  295. 类型
  296. )</em>录音文件的格式<br><p>
  297. 需通过supportedFormats属性获取设备支持的录音格式,若设置无效的值,则使用系统默认的录音格式。
  298. </p>
  299. </li>
  300. </ul>
  301. <h1><a name="plus.audio.RecordSuccessCallback">RecordSuccessCallback</a></h1>
  302. <p>录音操作成功回调</p>
  303. <pre class="prettyprint linenums">
  304. void onSuccess( recordFile ) {
  305. // Get record file code.
  306. }
  307. </pre>
  308. <h2>说明:</h2>
  309. <p class="des">麦克风录音操作成功的回调函数,在录音操作完成调用stop()方法时调用。</p>
  310. <h2>参数:</h2>
  311. <ul><li>recordFile:
  312. <em>(
  313. <font class="type">String</font>
  314. )
  315. 必选 </em>录音操作保存的音频文件路径<br>
  316. </li></ul>
  317. <h2>返回值:</h2>
  318. <font class="type">void</font>
  319. : 无<h1><a name="plus.audio.PlaySuccessCallback">PlaySuccessCallback</a></h1>
  320. <p>播放音频文件操作成功回调</p>
  321. <pre class="prettyprint linenums">
  322. void onCompleted() {
  323. // Play audio file completed code.
  324. }
  325. </pre>
  326. <h2>说明:</h2>
  327. <p class="des">
  328. 音频播放操作成功的回调函数,在音频播放完成或调用stop()方法时触发。
  329. </p>
  330. <h2>参数:</h2>
  331. <p>无</p>
  332. <h2>返回值:</h2>
  333. <font class="type">void</font>
  334. : 无<h1><a name="plus.audio.AudioErrorCallback">AudioErrorCallback</a></h1>
  335. <p>音频操作失败回调</p>
  336. <pre class="prettyprint linenums">
  337. void onError( error ) {
  338. // Handle audio error
  339. }
  340. </pre>
  341. <h2>参数:</h2>
  342. <ul><li>error:
  343. <em>(
  344. <font class="type">DOMException</font>
  345. )
  346. 必选 </em>音频操作的错误信息<br>
  347. </li></ul>
  348. <h2>返回值:</h2>
  349. <font class="type">void</font>
  350. : 无<br><br>
  351. </div></body>
  352. </html>