course_links.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. {extend name="public/layout"}
  2. {block name="body"}
  3. <style>
  4. html,body {
  5. background-color: #fff;
  6. }
  7. .firstpoint{
  8. display: inline-block;
  9. background-color: #009688;
  10. color:#fff;
  11. width:30px;
  12. height: 30px;
  13. border-radius: 15px;
  14. line-height: 30px;
  15. font-size: 20px;
  16. text-align: center;
  17. font-weight: bold;
  18. }
  19. .wxsbox,.wxsecondBox,.wxthirdBox{
  20. display: inline-block;
  21. padding: 10px 10px 0;
  22. height: 220px;
  23. border: 1px solid #ccc;
  24. width: 200px;
  25. float: left;
  26. }
  27. .wxsbox{
  28. /*text-align: center;*/
  29. }
  30. .wxsbox img{
  31. display: block;
  32. width: 100px;
  33. margin:10px auto 0;
  34. }
  35. .wxsecondBox img{
  36. display: block;
  37. width: 100px;
  38. margin:10px auto 0;
  39. }
  40. .wxsecondBox{
  41. position: relative;
  42. left: 42px;
  43. }
  44. .wxthirdBox{
  45. float: right;
  46. }
  47. .wxthirdBox div{
  48. margin-bottom: 10px;
  49. }
  50. .firstBox{
  51. width: 100%;
  52. margin-bottom: 20px;
  53. margin-top: 260px;
  54. }
  55. .firstNum{
  56. position: relative;
  57. left: 100px;
  58. }
  59. .secondNum{
  60. position: relative;
  61. left:330px;
  62. }
  63. .thirdNum{
  64. float: right;
  65. position: relative;
  66. right:100px;
  67. }
  68. .firstNum::before,.secondNum::before{
  69. content: ' ';
  70. display: block;
  71. height: 1px;
  72. width: 240px;
  73. background: #009688;
  74. position: absolute;
  75. top: 15px;
  76. left: 25px;
  77. }
  78. .coloryellow{
  79. color: #f7b500;
  80. }
  81. .layui-tab-item.layui-show{
  82. overflow: hidden;
  83. clear: both;
  84. }
  85. a{
  86. color: rgb(0, 0, 238);
  87. }
  88. div{
  89. word-wrap: break-word;
  90. word-break:break-all;
  91. }
  92. .myliveBox .wxsbox img{
  93. margin: 0 auto;
  94. }
  95. .myliveBox .wxsbox,.myliveBox .wxthirdBox{
  96. height: 250px;
  97. }
  98. .myliveBox .firstBox{
  99. margin-top: 287px;
  100. margin-bottom: 0;
  101. }
  102. .myliveBox .firstNum::before{
  103. content: ' ';
  104. display: block;
  105. height: 1px;
  106. width: 500px;
  107. background: #009688;
  108. position: absolute;
  109. top: 15px;
  110. left: 25px;
  111. }
  112. .center{
  113. display: flex;
  114. justify-content: center;
  115. align-items:center;
  116. }
  117. .block{
  118. display: block;
  119. }
  120. .myliveBox .wxsbox{
  121. position: relative;
  122. left:100px;
  123. }
  124. .myliveBox .wxthirdBox{
  125. position: relative;
  126. right:100px;
  127. }
  128. .myliveBox .firstBox .firstNum{
  129. left: 200px;
  130. }
  131. .myliveBox .firstBox .thirdNum{
  132. right: 200px;
  133. }
  134. .myliveBox .firstBox .firstNum::before{
  135. width: 300px;
  136. }
  137. .wxtitle{
  138. font-size: 16px;
  139. margin-bottom: 20px;
  140. padding-left: 50px;
  141. color: #009688;
  142. }
  143. .obsBox{
  144. position: relative;
  145. padding-left: 50px;
  146. }
  147. .obsBox .wxtitle{
  148. margin-bottom: 25px;
  149. padding-left: 0px;
  150. }
  151. .obsBox .wxsbox{
  152. text-align: left;
  153. }
  154. .obsBox .obswxsbox, .obsBox .obswxsecondBox,.obsBox .obswxthirdBox{
  155. display: block;
  156. border: 1px solid #ccc;
  157. padding: 10px;
  158. margin-bottom: 20px;
  159. }
  160. .obsBox .obsfirstBox{
  161. position: absolute;
  162. top: 0;
  163. left:0;
  164. }
  165. .obsBox .obsfirstNum{
  166. position: absolute;
  167. left:0;
  168. top: 80px;
  169. }
  170. .obsBox .obssecondNum{
  171. position: absolute;
  172. left:0;
  173. top: 175px;
  174. }
  175. .obsBox .obsthirdNum{
  176. position: absolute;
  177. left:0;
  178. top: 235px;
  179. }
  180. .obsBox .obsfirstNum::before{
  181. content: " ";
  182. position: absolute;
  183. width:1px;
  184. height:100px;
  185. background: #009688;
  186. top:28px;
  187. right: 14px;
  188. }
  189. .obsBox .obssecondNum::before{
  190. content: " ";
  191. position: absolute;
  192. width:1px;
  193. height:60px;
  194. background: #009688;
  195. top:25px;
  196. right: 14px;
  197. }
  198. .playliveBox .wxsecondBox{
  199. display: block;
  200. float: inherit;
  201. margin: 30px auto;
  202. left: 0;
  203. height: 240px;
  204. }
  205. .playliveBox .wxsecondBox img{
  206. width: 150px;
  207. }
  208. .dashBtn{
  209. position: relative;
  210. left: 130px;
  211. }
  212. .layui-tab-title li.dashBtn a{
  213. display: inline-block;
  214. }
  215. .layui-tab-title {
  216. height: 41px;
  217. }
  218. .layui-tab-title .layui-this {
  219. background-color: #249EFB;
  220. color: #fff;
  221. }
  222. .layui-tab-title .layui-this:after {
  223. border-bottom: none;
  224. border: none;
  225. }
  226. .layui-tab-title li {
  227. background-color: #F2F2F2;
  228. margin: 0px 5px;
  229. }
  230. </style>
  231. <body>
  232. <div class="layui-fluid">
  233. <div class="layui-row layui-col-space15">
  234. <div class="layui-col-md12" style="background-color:#ffffff">
  235. <div class="tplay-body-div">
  236. <div class="layui-tab" lay-filter="test">
  237. <ul class="layui-tab-title">
  238. <li class="layui-this" style="margin-left: 0px;">腾讯视频云推流</li>
  239. <li>OBS推流</li>
  240. <li>威云小程序推流</li>
  241. <li>直播间分享</li>
  242. <li class="dashBtn">
  243. <a class="layui-btn layui-btn-xs" title="直播控制台" lay-event="dashboard">我已设置完毕,打开控制台</a>
  244. </li>
  245. </ul>
  246. <div class="layui-tab-content">
  247. <div class="layui-tab-item layui-show">
  248. <div class="wxtitle">“本直播方式适用于携带手机来回行走的场景”</div>
  249. <div class="wxsbox">
  250. <br/>
  251. ①微信扫描以下二维码;<br/>
  252. <img src="https://imglive.yx-cdn.com/liveimg/wxqoce.png" alt="腾讯视频云" />
  253. ②点击底部的:“通信”;<br/>
  254. ③选择:“RTMP推流”。
  255. </div>
  256. <div class="wxsecondBox">
  257. <br/>
  258. ①“扫码读取”下面二维码;<br/>
  259. <img src="{:url('broad/course_apilinkpushQr',['cid'=>$courseId])}" />
  260. ②画面质量选择:“HD”;<br/>
  261. ③画面方向选择:“横屏推流”。
  262. ④点击“开始”即可直播。
  263. </div>
  264. <div class="wxthirdBox">
  265. <br/>
  266. <p class="coloryellow"> 注:因直播需占用所在网络的上行带宽,直播时如画面卡顿,可返回设置界面降低画面质量,或暂时禁止同网络内其他人上网。</p>
  267. </div>
  268. <div class="firstBox">
  269. <div class="firstpoint firstNum">1</div>
  270. <div class="firstpoint secondNum">2</div>
  271. <div class="firstpoint thirdNum">3</div>
  272. </div>
  273. </div>
  274. <div class="layui-tab-item obsBox">
  275. <div class="wxtitle">“本直播方式适用于推流多幅画面、PPT、3D效果图的场景”</div>
  276. <div class="obswxsbox">
  277. <div><a href="https://dl.softmgr.qq.com/original/Video/OBS-Studio-24.0.3-Full-Installer-x86.exe" style="color:#009688;">下载OBS</a>,安装后点击右下角“设置”,选择窗口左边的“流”按钮,输入以下内容后保存。</div><br/>
  278. <div>URL:<span>{$pushlinks['obs_addr']}</span><a class="layui-btn layui-btn-xs layui-btn-radius copy" data-clipboard-text="{$pushlinks['obs_addr']}">一键复制</a></div>
  279. <div>流名称:<span>{$pushlinks['obs_name']}</span><a class="layui-btn layui-btn-xs layui-btn-radius copy" data-clipboard-text="{$pushlinks['obs_name']}">一键复制</a></div>
  280. </div>
  281. <div class="obswxsecondBox center">
  282. <div class="">在主界面左下角的“来源”窗口,添加您所要播放的媒体类型。</div>
  283. </div>
  284. <div class="obswxthirdBox center">
  285. <div>点击“开始推流”后,主界面右下角亮起绿色图形,表示已经在正常直播中。</div>
  286. </div>
  287. <div class="obsfirstBox">
  288. <div class="firstpoint obsfirstNum">1</div>
  289. <div class="firstpoint obssecondNum">2</div>
  290. <div class="firstpoint obsthirdNum">3</div>
  291. </div>
  292. </div>
  293. <div class="layui-tab-item myliveBox">
  294. <div class="wxtitle">“本直播方式适用于携带手机来回行走的场景。”(内测中,不建议正式直播使用)</div>
  295. <div class="wxsbox">
  296. <div>微信扫描以下二维码</div>
  297. <img src="{$imgsrc}" width="180px">
  298. <div>打开“威云”小程序。</div>
  299. </div>
  300. <div class="wxthirdBox center">
  301. <div>
  302. 点击“开始推流”即可直播。
  303. <span class="coloryellow block">注:内测中,不建议正式直播使用。</span>
  304. </div>
  305. </div>
  306. <div class="firstBox">
  307. <div class="firstpoint firstNum">1</div>
  308. <!-- <div class="firstpoint secondNum">2</div> -->
  309. <div class="firstpoint thirdNum">2</div>
  310. </div>
  311. </div>
  312. <div class="layui-tab-item playliveBox" style="text-align: center;">
  313. <div class="wxtitle">您的直播间二维码为:</div>
  314. <!-- <div class="wxsecondBox">
  315. <img src="{$wylinks}"><br/>
  316. <div class="coloryellow">注:小程序分享二维码。</div>
  317. </div> -->
  318. <div class="wxsecondBox">
  319. <img src="{$sharelink}"><br/>
  320. <div class="coloryellow">注:直播分享二维码。</div>
  321. <br/>
  322. <a class="layui-btn layui-btn-xs copy" data-clipboard-text="{$sharelinkUrl}" style="margin: 0 auto;">复制到浏览器观看直播</a>
  323. </div>
  324. </div>
  325. </div>
  326. </div>
  327. </div>
  328. </div>
  329. </div>
  330. </div>
  331. {/block}
  332. {block name="js"}
  333. <script src="__STATIC__/js/clipboard.min.js"></script>
  334. <script>
  335. var clipboard = new ClipboardJS('.copy');
  336. var sharelink = '{$sharelinkUrl}';
  337. layui.use(['layer', 'element','table', 'form'], function(){
  338. var $ = layui.jquery
  339. ,element = layui.element;
  340. element.on('tab(test)', function(elem){
  341. // location.hash = 'test='+ $(this).attr('lay-id');
  342. });
  343. clipboard.on('success', function(e) {
  344. layer.msg('复制成功');
  345. });
  346. clipboard.on('error', function(e) {
  347. layer.msg('复制失败');
  348. });
  349. $('.dashBtn .layui-btn').on('click', function () {
  350. var index = parent.layer.getFrameIndex(window.name);
  351. parent.layer.close(index);
  352. parent.layer.open({
  353. title:'{$courseTitle}-直播控制台'
  354. ,type: 2
  355. ,content:"{:url('broad/dashboard')}"
  356. ,area: ['1015px', '634px']
  357. });
  358. });
  359. });
  360. </script>
  361. {/block}