video.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611
  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>Video 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.video">video</a></h1>
  15. <p>Video模块管理多媒体视频相关能力,可用创建视频播放控件,直播推流控件等。</p>
  16. <h2>方法:</h2>
  17. <ul>
  18. <li>
  19. <a href="#plus.video.createVideoPlayer">createVideoPlayer</a>: 创建VideoPlayer对象</li>
  20. <li>
  21. <a href="#plus.video.createLivePusher">createLivePusher</a>: 创建LivePusher对象</li>
  22. <li>
  23. <a href="#plus.video.getVideoPlayerById">getVideoPlayerById</a>: 查找已经创建的VideoPlayer对象</li>
  24. <li>
  25. <a href="#plus.video.getLivePusherById">getLivePusherById</a>: 查找已经创建的LivePusher对象</li>
  26. </ul>
  27. <h2>对象:</h2>
  28. <ul>
  29. <li>
  30. <a href="#plus.video.VideoPlayer">VideoPlayer</a>: 视频播放控件对象</li>
  31. <li>
  32. <a href="#plus.video.VideoPlayerStyles">VideoPlayerStyles</a>: 视频播放控件参数</li>
  33. <li>
  34. <a href="#plus.video.VideoPlayerEvents">VideoPlayerEvents</a>: 视频播放控件事件类型</li>
  35. <li>
  36. <a href="#plus.video.LivePusher">LivePusher</a>: 直播推流控件对象</li>
  37. <li>
  38. <a href="#plus.video.LivePusherStyles">LivePusherStyles</a>: 直播推流控件配置选项</li>
  39. <li>
  40. <a href="#plus.video.LivePusherEvents">LivePusherEvents</a>: 直播推流控件事件类型</li>
  41. </ul>
  42. <h2>回调方法:</h2>
  43. <ul>
  44. <li>
  45. <a href="#plus.video.VideoPlayerEventCallback">VideoPlayerEventCallback</a>: 视频播放控件事件监听回调函数</li>
  46. <li>
  47. <a href="#plus.video.LivePusherEventCallback">LivePusherEventCallback</a>: 视频播放控件事件监听回调函数</li>
  48. </ul>
  49. <h2>权限:</h2>
  50. <p>5+功能模块(permissions)</p>
  51. <pre class="prettyprint linenums">
  52. {
  53. // ...
  54. "permissions":{
  55. // ...
  56. "VideoPlayer": {
  57. "description": "视频播放"
  58. },
  59. "LivePusher": {
  60. "description": "直播推流"
  61. }
  62. }
  63. }
  64. </pre>
  65. <h1><a name="plus.video.VideoPlayer">VideoPlayer</a></h1>
  66. <p>视频播放控件对象</p>
  67. <pre class="prettyprint linenums">
  68. interface plus.video.VideoPlayer {
  69. // Methods
  70. function void addEventListener(event, listener, capture);
  71. function void setStyles(styles);
  72. function void play();
  73. function void pause();
  74. function void seek(position);
  75. function void requestFullScreen();
  76. function void exitFullScreen();
  77. function void stop();
  78. function void hide();
  79. function void show();
  80. function void close();
  81. function void sendDanmu(danmu);
  82. function void playbackRate(rate);
  83. }
  84. </pre>
  85. <h2>说明:</h2>
  86. <p class="des">
  87. VideoPlayer对象表示视频播放控件对象,在窗口中播放视频,可支持本地视频(mp4/flv),网络视频地址(mp4/flv/m3u8)及流媒体(rtmp/hls/rtsp)。
  88. 编码格式:
  89. Android平台:h264、mpeg4、flv、hevc、vp6f、vp8/9
  90. iOS平台:h264、mpeg4、flv、hevc、vp6f
  91. </p>
  92. <h2>构造:</h2>
  93. <ul><li>
  94. <a href="#plus.video.VideoPlayer.VideoPlayer.constructor(id,%20styles)">VideoPlayer.constructor(id, styles)</a>: 创建VideoPlayer对象</li></ul>
  95. <h2>方法:</h2>
  96. <ul>
  97. <li>
  98. <a href="#plus.video.VideoPlayer.addEventListener">addEventListener</a>: 监听视频播放控件事件</li>
  99. <li>
  100. <a href="#plus.video.VideoPlayer.setStyles">setStyles</a>: 设置视频播放控件参数</li>
  101. <li>
  102. <a href="#plus.video.VideoPlayer.setOptions">setOptions</a>: 设置视频播放控件参数(将废弃,使用setStyles)</li>
  103. <li>
  104. <a href="#plus.video.VideoPlayer.play">play</a>: 播放视频</li>
  105. <li>
  106. <a href="#plus.video.VideoPlayer.pause">pause</a>: 暂停视频</li>
  107. <li>
  108. <a href="#plus.video.VideoPlayer.seek">seek</a>: 跳转到指定位置</li>
  109. <li>
  110. <a href="#plus.video.VideoPlayer.requestFullScreen">requestFullScreen</a>: 切换到全屏</li>
  111. <li>
  112. <a href="#plus.video.VideoPlayer.exitFullScreen">exitFullScreen</a>: 退出全屏</li>
  113. <li>
  114. <a href="#plus.video.VideoPlayer.stop">stop</a>: 停止播放视频</li>
  115. <li>
  116. <a href="#plus.video.VideoPlayer.hide">hide</a>: 隐藏视频播放控件</li>
  117. <li>
  118. <a href="#plus.video.VideoPlayer.show">show</a>: 显示视频播放控件</li>
  119. <li>
  120. <a href="#plus.video.VideoPlayer.close">close</a>: 关闭视频播放控件</li>
  121. <li>
  122. <a href="#plus.video.VideoPlayer.sendDanmu">sendDanmu</a>: 发送弹幕</li>
  123. <li>
  124. <a href="#plus.video.VideoPlayer.playbackRate">playbackRate</a>: 设置倍速播放</li>
  125. </ul>
  126. <h1><a name="plus.video.VideoPlayerStyles">VideoPlayerStyles</a></h1>
  127. <p>视频播放控件参数</p>
  128. <h2>属性:</h2>
  129. <ul>
  130. <li>src: <em>(<font class="type">String</font>
  131. 类型
  132. )</em>视频资源地址<br><p>
  133. 支持本地地址,也支持网络地址及直播流(RTMP)。
  134. </p>
  135. </li>
  136. <li>initial-time: <em>(<font class="type">Number</font>
  137. 类型
  138. )</em>视频初始播放位置<br><p>
  139. 单位为秒(s)。
  140. 注意:仅在视频开始播放前设置有效。
  141. </p>
  142. </li>
  143. <li>duration: <em>(<font class="type">Number</font>
  144. 类型
  145. )</em>视频长度<br><p>
  146. 单位为秒(s)。
  147. 注意:仅在视频开始播放前设置有效。
  148. </p>
  149. </li>
  150. <li>controls: <em>(<font class="type">Boolean</font>
  151. 类型
  152. )</em>是否显示默认播放控件<br><p>
  153. 默认值为true。
  154. 包括播放/暂停按钮、播放进度、时间等。
  155. </p>
  156. </li>
  157. <li>danmu-list: <em>(<font class="type">Array(JSON)</font>
  158. 类型
  159. )</em>弹幕列表<br><p>
  160. 弹幕JSON对象包括属性:text(String类型,弹幕文本类容),color(String类型,弹幕颜色,格式为#RRGGBB),time(Number类型,弹幕出现的时间,单位为秒)。
  161. </p>
  162. </li>
  163. <li>danmu-btn: <em>(<font class="type">Boolean</font>
  164. 类型
  165. )</em>是否显示弹幕按钮<br><p>
  166. 默认值为false。
  167. 注意:仅在控件构造时设置有效,不能动态更新。
  168. </p>
  169. </li>
  170. <li>enable-danmu: <em>(<font class="type">Boolean</font>
  171. 类型
  172. )</em>是否展示弹幕<br><p>
  173. 默认值为false。
  174. 注意:仅在控件构造时设置有效,不能动态更新。
  175. </p>
  176. </li>
  177. <li>autoplay: <em>(<font class="type">Boolean</font>
  178. 类型
  179. )</em>是否自动播放<br><p>
  180. 默认值为false。
  181. </p>
  182. </li>
  183. <li>loop: <em>(<font class="type">Boolean</font>
  184. 类型
  185. )</em>是否循环播放<br><p>
  186. 默认值为false。
  187. </p>
  188. </li>
  189. <li>muted: <em>(<font class="type">Boolean</font>
  190. 类型
  191. )</em>是否静音播放<br><p>
  192. 默认值为false。
  193. </p>
  194. </li>
  195. <li>direction: <em>(<font class="type">Number</font>
  196. 类型
  197. )</em>设置全屏时视频的方向<br><p>
  198. 不指定则根据宽高比自动判断。
  199. 有效值为: 0(正常竖向), 90(屏幕逆时针90度), -90(屏幕顺时针90度)。
  200. 默认值为-90。
  201. </p>
  202. </li>
  203. <li>show-progress: <em>(<font class="type">Boolean</font>
  204. 类型
  205. )</em>是否显示播放进度<br><p>
  206. 默认值为true。
  207. </p>
  208. </li>
  209. <li>show-fullscreen-btn: <em>(<font class="type">Boolean</font>
  210. 类型
  211. )</em>是否显示全屏按钮<br><p>
  212. 默认值为true。
  213. </p>
  214. </li>
  215. <li>show-play-btn: <em>(<font class="type">Boolean</font>
  216. 类型
  217. )</em>是否显示视频底部控制栏的播放按钮<br><p>
  218. 默认值为true。
  219. </p>
  220. </li>
  221. <li>show-center-play-btn: <em>(<font class="type">Boolean</font>
  222. 类型
  223. )</em>是否显示视频中间的播放按钮<br><p>
  224. 默认值为true。
  225. </p>
  226. </li>
  227. <li>enable-progress-gesture: <em>(<font class="type">Boolean</font>
  228. 类型
  229. )</em>是否开启控制进度的手势<br><p>
  230. 默认值为true。
  231. </p>
  232. </li>
  233. <li>objectFit: <em>(<font class="type">String</font>
  234. 类型
  235. )</em>当视频大小与 video 容器大小不一致时,视频的表现形式<br><p>
  236. 有效值为:contain(包含),fill(填充),cover(覆盖)。
  237. 默认值为contain。
  238. 仅Android平台支持。
  239. </p>
  240. </li>
  241. <li>poster: <em>(<font class="type">String</font>
  242. 类型
  243. )</em>视频封面的图片网络资源地址<br><p>
  244. 如果 controls 属性值为 false 则设置 poster 无效。
  245. </p>
  246. </li>
  247. <li>top: <em>(<font class="type">String</font>
  248. 类型
  249. )</em>VideoPlayer控件左上角的垂直偏移量<br><p>
  250. 可取值:
  251. 像素值,如"100px";
  252. 百分比,如"10%",相对于父Webview窗口的高度;
  253. 自动计算,如"auto",根据height值自动计算,相对于父Webview窗口垂直居中。
  254. </p>
  255. </li>
  256. <li>left: <em>(<font class="type">String</font>
  257. 类型
  258. )</em>VideoPlayer控件左上角的水平偏移量<br><p>
  259. 可取值:
  260. 像素值,如"100px";
  261. 百分比,如"10%",相对于父Webview窗口的宽度;
  262. 自动计算,如"auto",根据width值自动计算,相对于父Webview窗口水平居中。
  263. 默认值为"0px"。
  264. </p>
  265. </li>
  266. <li>width: <em>(<font class="type">String</font>
  267. 类型
  268. )</em>VideoPlayer控件的宽度<br><p>
  269. 可取值:
  270. 像素值,如"100px";
  271. 百分比,如"10%",相对于父Webview窗口的宽度。
  272. 默认值为"100%"。
  273. </p>
  274. </li>
  275. <li>height: <em>(<font class="type">String</font>
  276. 类型
  277. )</em>VideoPlayer控件的高度<br><p>
  278. 可取值:
  279. 像素值,如"100px";
  280. 百分比,如"10%",相对于父Webview窗口的高度。
  281. 默认值为"100%"。
  282. </p>
  283. </li>
  284. <li>position: <em>(<font class="type">String</font>
  285. 类型
  286. )</em>VideoPlayer控件在Webview窗口的布局模式<br><p>
  287. 可取值:
  288. "static" - 静态布局模式,如果页面存在滚动条则随窗口内容滚动;
  289. "absolute" - 绝对布局模式,如果页面存在滚动条不随窗口内容滚动;
  290. 默认值为"static"。
  291. </p>
  292. </li>
  293. </ul>
  294. <h1><a name="plus.video.VideoPlayerEvents">VideoPlayerEvents</a></h1>
  295. <p>视频播放控件事件类型</p>
  296. <h2>常量:</h2>
  297. <ul>
  298. <li>"play": <em>(<font class="type">String</font>
  299. 类型
  300. )</em>视频播放事件<br><p>
  301. 当视频开始/继续播放时触发。
  302. 无事件回调函数参数。
  303. </p>
  304. </li>
  305. <li>"pause": <em>(<font class="type">String</font>
  306. 类型
  307. )</em>视频暂停事件<br><p>
  308. 当视频暂停播放时触发。
  309. 无事件回调函数参数。
  310. </p>
  311. </li>
  312. <li>"ended": <em>(<font class="type">String</font>
  313. 类型
  314. )</em>视频结束事件<br><p>
  315. 当视频播放到末尾时触发。
  316. 无事件回调函数参数。
  317. </p>
  318. </li>
  319. <li>"timeupdate": <em>(<font class="type">String</font>
  320. 类型
  321. )</em>视频播放进度更新事件<br><p>
  322. 当视频播放进度变化时触发,触发频率250ms一次。
  323. 事件回调函数参数event.detail = {currentTime:"Number类型,当前播放时间(单位为秒)",duration:"Number类型,视频总长度(单位为秒)"}。
  324. </p>
  325. </li>
  326. <li>"fullscreenchange": <em>(<font class="type">String</font>
  327. 类型
  328. )</em>视频播放全屏播放状态变化事件<br><p>
  329. 当视频播放进入或退出全屏时触发。
  330. 事件回调函数参数event.detail = {fullScreen:"Boolean类型,当前状态是否为全屏", direction:"String类型,vertical或horizontal"}。
  331. </p>
  332. </li>
  333. <li>"waiting": <em>(<font class="type">String</font>
  334. 类型
  335. )</em>视频缓冲事件<br><p>
  336. 当视频播放出现缓冲时触发。
  337. 无事件回调函数参数。
  338. </p>
  339. </li>
  340. <li>"error": <em>(<font class="type">String</font>
  341. 类型
  342. )</em>视频错误事件<br><p>
  343. 当视频播放出错时触发。
  344. 无事件回调函数参数。
  345. </p>
  346. </li>
  347. </ul>
  348. <h1><a name="plus.video.LivePusher">LivePusher</a></h1>
  349. <p>直播推流控件对象</p>
  350. <pre class="prettyprint linenums">
  351. interface plus.video.LivePusher {
  352. // Methods
  353. function void addEventListener(event, listener, capture);
  354. function void setStyles(styles);
  355. function void preview();
  356. function void start();
  357. function void stop(options);
  358. function void pause();
  359. function void resume();
  360. function void switchCamera();
  361. function void snapshot();
  362. function void close();
  363. }
  364. </pre>
  365. <h2>说明:</h2>
  366. <p class="des">
  367. LivePusher对象表示直播推流控件对象,在窗口中显示捕获视频,实时推送到流媒体(RTMP)服务器。
  368. </p>
  369. <h2>构造:</h2>
  370. <ul><li>
  371. <a href="#plus.video.LivePusher.LivePusher.constructor(id,%20options)">LivePusher.constructor(id, options)</a>: 创建LivePusher对象</li></ul>
  372. <h2>方法:</h2>
  373. <ul>
  374. <li>
  375. <a href="#plus.video.LivePusher.addEventListener">addEventListener</a>: 监听直播推流控件事件</li>
  376. <li>
  377. <a href="#plus.video.LivePusher.setStyles">setStyles</a>: 设置直播推流控件参数</li>
  378. <li>
  379. <a href="#plus.video.LivePusher.setOptions">setOptions</a>: 设置直播推流控件参数(将废弃,使用setStyles)</li>
  380. <li>
  381. <a href="#plus.video.LivePusher.preview">preview</a>: 预览摄像头采集数据</li>
  382. <li>
  383. <a href="#plus.video.LivePusher.start">start</a>: 开始推流</li>
  384. <li>
  385. <a href="#plus.video.LivePusher.stop">stop</a>: 停止推流</li>
  386. <li>
  387. <a href="#plus.video.LivePusher.pause">pause</a>: 暂停推流</li>
  388. <li>
  389. <a href="#plus.video.LivePusher.resume">resume</a>: 恢复推流</li>
  390. <li>
  391. <a href="#plus.video.LivePusher.switchCamera">switchCamera</a>: 切换前后摄像头</li>
  392. <li>
  393. <a href="#plus.video.LivePusher.snapshot">snapshot</a>: 快照</li>
  394. <li>
  395. <a href="#plus.video.LivePusher.close">close</a>: 关闭直播推流控件</li>
  396. </ul>
  397. <h1><a name="plus.video.LivePusherStyles">LivePusherStyles</a></h1>
  398. <p>直播推流控件配置选项</p>
  399. <h2>属性:</h2>
  400. <ul>
  401. <li>url: <em>(<font class="type">String</font>
  402. 类型
  403. )</em>推流地址<br><p>
  404. 支持RTMP协议。
  405. </p>
  406. </li>
  407. <li>mode: <em>(<font class="type">String</font>
  408. 类型
  409. )</em>推流视频模式<br><p>
  410. 可取值:SD(标清), HD(高清), FHD(超清)。
  411. </p>
  412. </li>
  413. <li>muted: <em>(<font class="type">Boolean</font>
  414. 类型
  415. )</em>是否静音<br><p>
  416. 默认值为false。
  417. </p>
  418. </li>
  419. <li>enable-camera: <em>(<font class="type">Boolean</font>
  420. 类型
  421. )</em>开启摄像头<br><p>
  422. 默认值为true。
  423. </p>
  424. </li>
  425. <li>auto-focus: <em>(<font class="type">Boolean</font>
  426. 类型
  427. )</em>自动聚集<br><p>
  428. 默认值为true。
  429. </p>
  430. </li>
  431. <li>beauty: <em>(<font class="type">Number</font>
  432. 类型
  433. )</em>是否美颜<br><p>
  434. 可取值0、1,其中0表示不使用美颜,1表示不使用美颜。
  435. 默认值为0(不使用美颜)。
  436. </p>
  437. </li>
  438. <li>whiteness: <em>(<font class="type">Number</font>
  439. 类型
  440. )</em>是否美白<br><p>
  441. 可取值0、1、2、3、4、5,其中0表示不使用美白,其余值分别表示美白的程度,值越大美白程度越大。
  442. 默认值为0(不使用美白)。
  443. </p>
  444. </li>
  445. <li>aspect: <em>(<font class="type">String</font>
  446. 类型
  447. )</em>宽高比<br><p>
  448. 可取值:3:4, 9:16。
  449. </p>
  450. </li>
  451. <li>min-bitrate: <em>(<font class="type">Number</font>
  452. 类型
  453. )</em>最小码率<br><p>
  454. 默认值为200。
  455. </p>
  456. </li>
  457. <li>max-bitrate: <em>(<font class="type">Number</font>
  458. 类型
  459. )</em>最大码率<br><p>
  460. 默认值为1000。
  461. </p>
  462. </li>
  463. <li>top: <em>(<font class="type">String</font>
  464. 类型
  465. )</em>LivePusher控件左上角的垂直偏移量<br><p>
  466. 可取值:
  467. 像素值,如"100px";
  468. 百分比,如"10%",相对于父Webview窗口的高度;
  469. 自动计算,如"auto",根据height值自动计算,相对于父Webview窗口垂直居中。
  470. </p>
  471. </li>
  472. <li>left: <em>(<font class="type">String</font>
  473. 类型
  474. )</em>LivePusher控件左上角的水平偏移量<br><p>
  475. 可取值:
  476. 像素值,如"100px";
  477. 百分比,如"10%",相对于父Webview窗口的宽度;
  478. 自动计算,如"auto",根据width值自动计算,相对于父Webview窗口水平居中。
  479. 默认值为"0px"。
  480. </p>
  481. </li>
  482. <li>width: <em>(<font class="type">String</font>
  483. 类型
  484. )</em>LivePusher控件的宽度<br><p>
  485. 可取值:
  486. 像素值,如"100px";
  487. 百分比,如"10%",相对于父Webview窗口的宽度。
  488. 默认值为"100%"。
  489. </p>
  490. </li>
  491. <li>height: <em>(<font class="type">String</font>
  492. 类型
  493. )</em>LivePusher控件的高度<br><p>
  494. 可取值:
  495. 像素值,如"100px";
  496. 百分比,如"10%",相对于父Webview窗口的高度。
  497. 默认值为"100%"。
  498. </p>
  499. </li>
  500. <li>position: <em>(<font class="type">String</font>
  501. 类型
  502. )</em>LivePusher控件在Webview窗口的布局模式<br><p>
  503. 可取值:
  504. "static" - 静态布局模式,如果页面存在滚动条则随窗口内容滚动;
  505. "absolute" - 绝对布局模式,如果页面存在滚动条不随窗口内容滚动;
  506. 默认值为"static"。
  507. </p>
  508. </li>
  509. </ul>
  510. <h1><a name="plus.video.LivePusherEvents">LivePusherEvents</a></h1>
  511. <p>直播推流控件事件类型</p>
  512. <h2>常量:</h2>
  513. <ul>
  514. <li>"statechange": <em>(<font class="type">String</font>
  515. 类型
  516. )</em>状态变化事件<br><p>
  517. 当推流连接服务器状态变化时触发。
  518. 事件回调函数参数event={type:"事件类型,此时为statechange",target:"触发此事件的直播推流控件对象",detail:{code:"状态码,参考后面状态码说明",message:"描述信息"}}。
  519. 其中code状态码:
  520. 1001 - 已经连接推流服务器;
  521. 1002 - 已经与服务器握手完毕,开始推流;
  522. 1003 - 打开摄像头成功;
  523. 1004 - 录屏启动成功;
  524. 1005 - 推流动态调整分辨率;
  525. 1006 - 推流动态调整码率;
  526. 1007 - 首帧画面采集完成;
  527. 1008 - 编码器启动;
  528. -1301 - 打开摄像头失败;
  529. -1302 - 打开麦克风失败;
  530. -1303 - 视频编码失败;
  531. -1304 - 音频编码失败;
  532. -1305 - 不支持的视频分辨率;
  533. -1306 - 不支持的音频采样率;
  534. -1307 - 网络断连,且经多次重连抢救无效,更多重试请自行重启推流;
  535. -1308 - 开始录屏失败,可能是被用户拒绝;
  536. -1309 - 录屏失败,不支持的Android系统版本,需要5.0以上的系统;
  537. -1310 - 录屏被其他应用打断了;
  538. -1311 - Android Mic打开成功,但是录不到音频数据;
  539. -1312 - 录屏动态切横竖屏失败;
  540. 1101 - 网络状况不佳:上行带宽太小,上传数据受阻;
  541. 1102 - 网络断连, 已启动自动重连;
  542. 1103 - 硬编码启动失败,采用软编码;
  543. 1104 - 视频编码失败;
  544. 1105 - 新美颜软编码启动失败,采用老的软编码;
  545. 1106 - 新美颜软编码启动失败,采用老的软编码;
  546. 3001 - RTMP -DNS解析失败;
  547. 3002 - RTMP服务器连接失败;
  548. 3003 - RTMP服务器握手失败;
  549. 3004 - RTMP服务器主动断开,请检查推流地址的合法性或防盗链有效期;
  550. 3005 - RTMP 读/写失败。
  551. </p>
  552. </li>
  553. <li>"netstatus": <em>(<font class="type">String</font>
  554. 类型
  555. )</em>网络状态通知事件<br><p>
  556. 当推流的网络状态发生变化时触发。
  557. 事件回调函数参数event={type:"事件类型,此时为netstatus",target:"触发此事件的直播推流控件对象",detail:{videoBitrate:"视频码率",audioBitrate:"音频码率",videoFPS:"视频帧率",netSpeed:"推流网速",videoWidth:"视频宽度",videoHeight:"视频高度"}}。
  558. </p>
  559. </li>
  560. <li>"error": <em>(<font class="type">String</font>
  561. 类型
  562. )</em>渲染错误事件<br><p>
  563. 当推流发生错误是触发。
  564. 事件回调函数参数event={type:"事件类型,此时为error",target:"触发此事件的直播推流控件对象",detail:{code:"错误编码,参考后面错误码说明",message:"描述信息"}}。
  565. 其中code错误码:
  566. 1001 - 用户禁止使用摄像头;
  567. 1002 - 用户禁止使用录音。
  568. </p>
  569. </li>
  570. </ul>
  571. <h1><a name="plus.video.VideoPlayerEventCallback">VideoPlayerEventCallback</a></h1>
  572. <p>视频播放控件事件监听回调函数</p>
  573. <pre class="prettyprint linenums">
  574. void onEvent(event) {
  575. // Authenticate success code.
  576. }
  577. </pre>
  578. <h2>参数:</h2>
  579. <ul><li>event:
  580. <em>(
  581. <font class="type">JSON</font>
  582. )
  583. 可选 </em>事件触发时返回的参数<br>
  584. 不同事件返回的参数不一样,详情参考VideoPlayerEvents事件说明。
  585. </li></ul>
  586. <h2>返回值:</h2>
  587. <font class="type">void</font>
  588. : 无<h1><a name="plus.video.LivePusherEventCallback">LivePusherEventCallback</a></h1>
  589. <p>视频播放控件事件监听回调函数</p>
  590. <pre class="prettyprint linenums">
  591. void onEvent(event) {
  592. // event code.
  593. }
  594. </pre>
  595. <h2>参数:</h2>
  596. <ul><li>event:
  597. <em>(
  598. <font class="type">JSON</font>
  599. )
  600. 可选 </em>事件触发时返回的参数<br>
  601. 不同事件返回的参数不一样,详情参考LivePusherEvents事件说明。
  602. </li></ul>
  603. <h2>返回值:</h2>
  604. <font class="type">void</font>
  605. : 无<br><br>
  606. </div></body>
  607. </html>