Commit 3c936a2a authored by zhangww's avatar zhangww
Browse files

3.16.6

1.添加自定义跑马灯数据源
2.添加播放状态
3.bug fix
parent ac3deca7
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -674,7 +674,7 @@ header, .context-menu, .megamenu-content, footer{
</style><title>4.功能使用</title>
</head>
<body class='typora-export os-windows'><div class='typora-export-content'>
<div id='write' class=''><h2 id='41-广告功能'><span>4.1 广告功能</span></h2><ol start='' ><li><span>本功能需要后台开通移动广告;</span></li><li><span>广告核心类DWMediaAD提供能了获取广告信息的方法,广告详细信息通过DWMediaADListener监听器回调来获取;</span></li><li><span>广告分为前贴、暂停、片尾,需要分别调用方法来获取,提供了视频和图片广告。</span></li></ol><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">……</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWMediaAD mDWMediaAD = new DWMediaAD(dwMediaADlistener, USERID, videoId);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">mDWMediaAD.getFrontAD();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">mDWMediaAD.getPauseAD();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">mDWMediaAD.getEndAD();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">……</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">// 广告监听器</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">private DWMediaADListener dwMediaADListener = new DWMediaADListener() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; //回调片头广告信息</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onFrontAD(FrontADInfo info) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; //回调暂停广告信息</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onPauseAD(PauseADInfo info) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
<div id='write' class=''><h2 id='41-广告功能'><span>4.1 广告功能</span></h2><ol start='' ><li><span>本功能需要后台开通移动广告;</span></li><li><span>广告核心类DWMediaAD提供能了获取广告信息的方法,广告详细信息通过DWMediaADListener监听器回调来获取;</span></li><li><span>广告分为前贴、暂停、片尾,需要分别调用方法来获取,提供了视频和图片广告。</span></li></ol><pre class="md-fences md-end-block ty-contain-cm modeLoaded md-focus" spellcheck="false" lang="" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap CodeMirror-focused" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><span><span></span>x</span></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">……</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWMediaAD mDWMediaAD = new DWMediaAD(dwMediaADlistener, USERID, videoId);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">mDWMediaAD.getFrontAD();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">mDWMediaAD.getPauseAD();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">mDWMediaAD.getEndAD();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">……</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">// 广告监听器</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">private DWMediaADListener dwMediaADListener = new DWMediaADListener() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; //回调片头广告信息</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onFrontAD(FrontADInfo info) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; //回调暂停广告信息</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onPauseAD(PauseADInfo info) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; //回调片尾广告信息</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onEndAD(EndADInfo info) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onFrontADError(HuodeException e) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
......@@ -741,9 +741,10 @@ header, .context-menu, .megamenu-content, footer{
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">//不用震动的时候,调用cancel()取消</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">if (vibrator != null) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; vibrator.cancel();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 227px;"></div><div class="CodeMirror-gutters" style="display: none; height: 227px;"></div></div></div></pre><h2 id='424-防拖拽'><span>4.24 防拖拽</span></h2><p><span>启用防拖拽功能,未看部分禁止拖动,将isForbidDragToUnPlayPart的值改为true,详情参考Demo。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33301px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">//未看部分禁止拖动:isForbidDragToUnPlayPart为false时允许拖动到未看部分,为true时不允许拖动到未看部分</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">private boolean isForbidDragToUnPlayPart = true;</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 68px;"></div><div class="CodeMirror-gutters" style="display: none; height: 68px;"></div></div></div></pre><h2 id='425-自定义logo'><span>4.25 自定义Logo</span></h2><p><span>在布局中使用CustomLogoView。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">&lt;com.bokecc.vod.view.CustomLogoView</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; android:id="@+id/clv_logo"</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; android:layout_width="match_parent"</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; android:layout_height="match_parent"</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; android:layout_centerInParent="true" /&gt;</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 113px;"></div><div class="CodeMirror-gutters" style="display: none; height: 113px;"></div></div></div></pre><p><span>设置Logo,logo图片不宜太大,控制在100KB内。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; /**</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; * @param img 图片地址</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; * @param xPosRate 相对于左上角的X轴位置偏移量与播放窗口宽度的比例</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; * @param yPosRate 相对于左上角的Y轴位置偏移量播放窗口高度的比例</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; * @param logoWidthRate Logo宽度相对于播放窗口宽度的比例</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; * @param logoHeightRate Logo高度相对于播放窗口高度的比例</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; */</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">clv_logo.setCustomLogoInfo(img, xPosRate, yPosRate, logoWidthRate, logoHeightRate);</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 181px;"></div><div class="CodeMirror-gutters" style="display: none; height: 181px;"></div></div></div></pre><p><span>展示logo,调用clv_logo.show()。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">clv_logo.show();</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 23px;"></div><div class="CodeMirror-gutters" style="display: none; height: 23px;"></div></div></div></pre><p><span>横竖屏切换时,刷新Logo。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">//刷新logo视图</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">clv_logo.refreshView();</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 45px;"></div><div class="CodeMirror-gutters" style="display: none; height: 45px;"></div></div></div></pre><p>&nbsp;</p><h2 id='426-错误处理'><span>4.26 错误处理</span></h2><p><span>错误信息有两种,一种是播放器触发的错误,另一种是获得场景视频自定义的错误。</span></p><h3 id='4261-监听播放器的错误事件'><span>4.26.1 监听播放器的错误事件</span></h3><p><span>DWMediaPlayer重载了MediaPlayer的setOnErrorListener()方法,如果需要在应用中提示错误信息,可调用此方法设置OnErrorListener。具体实现方式如下:</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">player.setOnErrorListener(new MediaPlayer.OnErrorListener() {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public boolean onError(MediaPlayer mp, int what, int extra) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; //在这里进行错误处理</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; return true;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">});</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 159px;"></div><div class="CodeMirror-gutters" style="display: none; height: 159px;"></div></div></div></pre><h3 id='4262-监听获得场景视频自定义的错误事件'><span>4.26.2 监听获得场景视频自定义的错误事件</span></h3><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">player.setOnDreamWinErrorListener(new OnDreamWinErrorListener() {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onPlayError(HuodeException e) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; //在这里进行错误处理</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">});</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 136px;"></div><div class="CodeMirror-gutters" style="display: none; height: 136px;"></div></div></div></pre><h2 id='427-自定义视频封面'><span>4.27 自定义视频封面 </span></h2><p><span>1.根据后台管理系统上传的自定义封面,用于视频播放前的展示,用户设置的是否自动播放,决定展示时长。当设置为自动播放时,在视频缓冲加载结束之后,将隐藏该封面图,播放视频。当设置为非自动播放时,将持续展示封面图,直到用户点击播放按钮。 </span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> //视频缓冲完成自动播放 </span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">player.setAutoPlay(true); &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> //持续展示视频封面</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> player.setAutoPlay(false);</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 91px;"></div><div class="CodeMirror-gutters" style="display: none; height: 91px;"></div></div></div></pre><p><span>2.视频的封面图展示与隐藏逻辑,更多的需要开发人员自行控制,可通过提供的api获取当前配置的封面rul。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">//在onPrepared()方法中,获取到 playInfo对象</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">PlayInfo playInfo = player.getPlayInfo();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">String coverUrl = playInfo.getCoverImage();</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 68px;"></div><div class="CodeMirror-gutters" style="display: none; height: 68px;"></div></div></div></pre><p><span>3.当音视频模式切换时,需调用api,通知当前模式切换</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">player.playModelChanged();</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 23px;"></div><div class="CodeMirror-gutters" style="display: none; height: 23px;"></div></div></div></pre><h2 id='427-答题器'><span>4.27 答题器</span></h2><p><span>1.在admin管理系统中配置答题器相关数据,播放器可以通过设置回调获取相关数据,以及相关回调方法</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">player.setOnAnswerSheetListener(new AnswerSheetListener() {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void onAnswerSheet(List&lt;AnswerSheetInfo&gt; answerSheetInfoList) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //获取到返回的数据,将该数据绑定在视图中</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MediaPlayActivity.this.answerSheetInfoList = answerSheetInfoList;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sheetTimeList = new ArrayList&lt;&gt;();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (int i = 0; i &lt; answerSheetInfoList.size(); i++) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sheetTimeList.add(answerSheetInfoList.get(i).getShowTime());</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Collections.sort(sheetTimeList);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void onAnswerCommitSuccess(final List&lt;AnswerCommitResult&gt; commitResultList) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //提交答案成功回调</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; runOnUiThread(new Runnable() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void run() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //UI展示,相关逻辑</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void onAnswerCommitFailed(int errorCode, String errorMessage) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //提交答案失败回调</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; runOnUiThread(new Runnable() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void run() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //UI展示,相关逻辑</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; });</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 793px;"></div><div class="CodeMirror-gutters" style="display: none; height: 793px;"></div></div></div></pre><p><span>2.答题器提交答案</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33398px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">//这里需要填入当前回答问题的id,以及答案列表player.onSubmitAnswer(int currentSheetInfoId,List&lt;AnswerSheetInfo.Answer&gt; selectedAnswer)</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 45px;"></div><div class="CodeMirror-gutters" style="display: none; height: 45px;"></div></div></div></pre><p><span>4.28.2 答题器相关设置</span>
<span>1.显示开关,SDK提供了答题器显示相关的api给到开发者,以满足用户可以随时控制答题器相关逻辑是否展示的自由度。当配置了答题器的相关内容时,默认为显示答题器。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> player.setHideAnswerSheet(boolen hide);</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 23px;"></div><div class="CodeMirror-gutters" style="display: none; height: 23px;"></div></div></div></pre><p><span>2.当进度条拖动时,对于历史进度中未展示的相关答题器,存在有强制依次展示和不展示的两种不同逻辑,SDK以构造的方式进行强绑定,无参构造中,默认为强制依次显示。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWIjkMediaPlayer player = new DWIjkMediaPlayer();</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWIjkMediaPlayer player = new DWIjkMediaPlayer(boolen force);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWMediaPlayer player = new DWMediaPlayer();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWMediaPlayer player = new DWMediaPlayer(boolen force);</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 91px;"></div><div class="CodeMirror-gutters" style="display: none; height: 91px;"></div></div></div></pre><h2 id='427-知识点'><span>4.27 知识点</span></h2><p><span>1.知识点相关功能逻辑在demo中体现,数据源SDK不做相关处理,具体逻辑可根据实际需求进行更改,demo中提供了本地数据源与数据格式。详见assents目录下knowledge.json文件。知识点UI相关体现在KnowledgeDialog中。demo中提供了数据源,UI展示,接口回调的完整逻辑,可按需进行二次更改开发。</span></p><p><span>具体的展示与逻辑信息,您可参考demo中的相关实现。 </span></p><h2 id='428-图文打点'><span>4.28 图文打点</span></h2><p><span>1.视频打点信息提供图文展示功能,可在后台配置打点信息视频信息描述文案,点击热点时,会以浮层的形式展示在播放器上,以获取到的当前视频帧截图进行展示。视频帧截图获取需要一定时长,数据源以接口回调为准。视频帧截图会以本地文件的形式保存在本地文件夹中,其路径低版本下为SD卡根目录下com.bokecc/hotspot/视频ID/文件夹下,高版本在Android/data/com.bokecc.vod/files/Documents/com.bokecc/hotspot/视频ID/文件夹下。获取视频帧截图需要按以下逻辑调用API,详情请参考demo实现</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33398px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; 1.DWMediaPlayer需要调用在onPrepared回调中调用方法executePortInfo()方法,DWIjkMediaPlayer无需调用。</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onPrepared(IMediaPlayer iMediaPlayer) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; player.executePortInfo();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; 2.数据返回需要注册该监听</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; player.setOnHotspotListener(new OnHotspotListener() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; public void onHotspots(TreeMap&lt;Integer, String&gt; hotspotMap) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; //返回打点的时间点与描述信息</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; //do something</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
<span>1.显示开关,SDK提供了答题器显示相关的api给到开发者,以满足用户可以随时控制答题器相关逻辑是否展示的自由度。当配置了答题器的相关内容时,默认为显示答题器。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> player.setHideAnswerSheet(boolen hide);</span></pre></div></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 23px;"></div><div class="CodeMirror-gutters" style="display: none; height: 23px;"></div></div></div></pre><p><span>2.当进度条拖动时,对于历史进度中未展示的相关答题器,存在有强制依次展示和不展示的两种不同逻辑,SDK以构造的方式进行强绑定,无参构造中,默认为强制依次显示。</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWIjkMediaPlayer player = new DWIjkMediaPlayer();</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWIjkMediaPlayer player = new DWIjkMediaPlayer(boolen force);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWMediaPlayer player = new DWMediaPlayer();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">DWMediaPlayer player = new DWMediaPlayer(boolen force);</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 91px;"></div><div class="CodeMirror-gutters" style="display: none; height: 91px;"></div></div></div></pre><h2 id='427-知识点'><span>4.27 知识点</span></h2><p><span>1.知识点相关功能逻辑在demo中体现,数据源SDK不做相关处理,具体逻辑可根据实际需求进行更改,demo中提供了本地数据源与数据格式。详见assents目录下knowledge.json文件。知识点UI相关体现在KnowledgeDialog中。demo中提供了数据源,UI展示,接口回调的完整逻辑,可按需进行二次更改开发。</span></p><p><span>具体的展示与逻辑信息,您可参考demo中的相关实现。 </span></p><h2 id='428-图文打点'><span>4.28 图文打点</span></h2><p><span>1.视频打点信息提供图文展示功能,可在后台配置打点信息视频信息描述文案,点击热点时,会以浮层的形式展示在播放器上,以获取到的当前视频帧截图进行展示。视频帧截图获取需要一定时长,数据源以接口回调为准。视频帧截图会以本地文件的形式保存在本地文件夹中,其路径低版本下为SD卡根目录下com.bokecc/hotspot/视频ID/文件夹下,高版本在Android/data/com.bokecc.vod/files/Documents/com.bokecc/hotspot/视频ID/文件夹下。获取视频帧截图需要按以下逻辑调用API,详情请参考demo实现</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33301px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; 1.DWMediaPlayer需要调用在onPrepared回调中调用方法executePortInfo()方法,DWIjkMediaPlayer无需调用。</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onPrepared(IMediaPlayer iMediaPlayer) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; player.executePortInfo();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; 2.数据返回需要注册该监听</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; player.setOnHotspotListener(new OnHotspotListener() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; public void onHotspots(TreeMap&lt;Integer, String&gt; hotspotMap) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; //返回打点的时间点与描述信息</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; //do something</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; public void onHotSpotInfo(LinkedHashMap&lt;Integer, HotSpotInfo&gt; hotSpotInfoList) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; //返回打点信息相关对象,当前以LinkedHashMap返回,key为时间(秒),value为HotSpotInfo对象</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; //do something</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> });</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 521px;"></div><div class="CodeMirror-gutters" style="display: none; height: 521px;"></div></div></div></pre><h2 id='429-视频帧预览'><span>4.29 视频帧预览</span></h2><p><span>1.视频帧预览功能是指在进度条滑动过程中,在播放器上方以浮层的形式展示连贯的图片,图片内容为滑动进度的视频帧。该功能需要在vuion后台开启缩略图权限。具体使用可参考demo详情</span></p><pre class="md-fences md-end-block ty-contain-cm md-focus" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; 1.需要设置该监听,返回缩略图图片到此回调中</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> player.setThumbnailsCallback(new ThumbnailsCallback() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; public void onThumbnailsInfo(List&lt;String&gt; thumbnailsList) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //do something</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">});</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 181px;"></div><div class="CodeMirror-gutters" style="display: none; height: 181px;"></div></div></div></pre></div></div>
</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 521px;"></div><div class="CodeMirror-gutters" style="display: none; height: 521px;"></div></div></div></pre><h2 id='429-视频帧预览'><span>4.29 视频帧预览</span></h2><p><span>1.视频帧预览功能是指在进度条滑动过程中,在播放器上方以浮层的形式展示连贯的图片,图片内容为滑动进度的视频帧。该功能需要在vuion后台开启缩略图权限。具体使用可参考demo详情</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; 1.需要设置该监听,返回缩略图图片到此回调中</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> player.setThumbnailsCallback(new ThumbnailsCallback() {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; @Override</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; public void onThumbnailsInfo(List&lt;String&gt; thumbnailsList) {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //do something</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">});</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 181px;"></div><div class="CodeMirror-gutters" style="display: none; height: 181px;"></div></div></div></pre><h2 id='430-自定义跑马灯数据源'><span>4.30 自定义跑马灯数据源 </span></h2><p><span>1.添加自定义跑马灯数据源,除在admin配置跑马灯相关数据外,提供自定义数据源入口。数据源需按照固定的json数据格式设置给sdk。其格式可参考demo中assents目录下marquee.json文件。</span>
<span>2.自定义跑马灯数据源优先级高于admin配置,如均有设置,以自定义数据源为准。</span></p><pre class="md-fences md-end-block ty-contain-cm" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.33333px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> //自定义跑马灯数据,该数据优先级高于admin配置,如均存在,则仅展示该数据</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> //此处以离线json为例,可按需配置数据源由服务器返回或本地存储,按固定的json格式即可</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> MarqueeInfo marqueeInfo = player.setCustomMarqueeData(JsonUtil.getLocalJson(this, "marquee.json")); &nbsp;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> setMarqueeView(marqueeInfo);</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 113px;"></div><div class="CodeMirror-gutters" style="display: none; height: 113px;"></div></div></div></pre></div></div>
</body>
</html>
\ No newline at end of file
......@@ -593,6 +593,6 @@ header, .context-menu, .megamenu-content, footer{
</style><title>7.更新日志</title>
</head>
<body class='typora-export os-windows'><div class='typora-export-content'>
<div id='write' class=''><h2 id='version-3165'><span>Version 3.16.5</span></h2><p><span>发布时间:2021-12-6</span></p><p><span>更新内容:</span><br/><span>1.添加高版本存储适配</span><br/><span>2.图文打点功能优化</span></p><h2 id='version-3164'><span>Version 3.16.4</span></h2><p><span>发布时间:2021-11-16</span></p><p><span>更新内容:</span><br/><span>1.添加图文打点功能</span><br/><span>2.添加视频帧预览功能</span></p><h2 id='version-3162'><span>Version 3.16.2</span></h2><p><span>发布时间:2021-10-20</span></p><p><span>更新内容:</span><br/><span>1.添加知识点功能</span><br/><span>2.修复历史bug</span></p><h2 id='version-3161'><span>Version 3.16.1</span></h2><p><span>发布时间:2021-09-06</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>以api形式提供答题器是否显示的控制</span></li><li><span>以构造函数的方法设置进度拖动后,历史进度中的答题器的展示逻辑区分</span></li></ol><h2 id='version-3160'><span>Version 3.16.0</span></h2><p><span>发布时间:2021-07-08</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>添加答题器相关功能</span></li><li><span>优化网络波动造成的播放视频后的自动重连功能</span></li><li><span>功能优化</span></li></ol><h2 id='version-3154'><span>Version 3.15.4</span></h2><p><span>发布时间:2021-05-14</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>优化了部分逻辑与代码。 </span></li></ol><h2 id='version-3153'><span>Version 3.15.3</span></h2><p><span>发布时间:2021-05-14</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增自定义封面相关功能能。 </span></li></ol><h2 id='version-3151'><span>Version 3.15.1</span></h2><p><span>发布时间:2021-04-13</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增离线跑马灯功能。 </span></li></ol><h2 id='version-3150'><span>Version 3.15.0</span></h2><p><span>发布时间:2021-03-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增自适应字幕。 </span></li></ol><h2 id='version-3140'><span>Version 3.14.0</span></h2><p><span>发布时间:2021-01-19</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增自定义Logo功能。</span></li></ol><h2 id='version-3130'><span>Version 3.13.0</span></h2><p><span>发布时间:2021-01-11</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增防拖拽功能。</span></li></ol><h2 id='version-3120'><span>Version 3.12.0</span></h2><p><span>发布时间:2020-12-18</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>优化下载功能。</span></li></ol><h2 id='version-3110'><span>Version 3.11.0</span></h2><p><span>发布时间:2020-11-19</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增离线字幕功能。</span></li></ol><h2 id='version-3100'><span>Version 3.10.0</span></h2><p><span>发布时间:2020-10-20</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>优化课堂练习功能。</span></li></ol><h2 id='version-390'><span>Version 3.9.0</span></h2><p><span>发布时间:2020-09-24</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增片尾广告功能。</span></li></ol><h2 id='version-380'><span>Version 3.8.0</span></h2><p><span>发布时间:2020-08-27</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增动感视频功能。</span></li><li><span>新增批量获取下载地址的功能。</span></li></ol><h2 id='version-372'><span>Version 3.7.2</span></h2><p><span>发布时间:2020-08-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增自动切换线路功能。</span></li><li><span>优化Demo功能。</span></li></ol><h2 id='version-371'><span>Version 3.7.1</span></h2><p><span>发布时间:2020-07-14</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增平台统计功能。</span></li><li><span>优化SDK结构。</span></li></ol><h2 id='version-370'><span>Version 3.7.0</span></h2><p><span>发布时间:2020-06-19</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增弹幕功能。</span></li><li><span>新增显示网速功能。</span></li></ol><h2 id='version-360'><span>Version 3.6.0</span></h2><p><span>发布时间:2020-05-13</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增悬浮小窗播放功能。</span></li><li><span>新增视频截图功能。</span></li></ol><h2 id='version-352'><span>Version 3.5.2</span></h2><p><span>发布时间:2020-03-24</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增滑动调节亮度功能。</span></li></ol><h2 id='version-351'><span>Version 3.5.1</span></h2><p><span>发布时间:2020-03-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK增加跑马灯信息获取功能。</span></li></ol><h2 id='version-350'><span>Version 3.5.0</span></h2><p><span>发布时间:2020-03-13</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增跑马灯功能。</span></li><li><span>SDK新增音频统计功能。</span></li></ol><h2 id='version-341'><span>Version 3.4.1</span></h2><p><span>发布时间:2020-03-03</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增播放器获取播放时长和暂停时长功能。</span></li><li><span>SDK优化上传功能。</span></li></ol><h2 id='version-340'><span>Version 3.4.0</span></h2><p><span>发布时间:2019-12-16</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo新增重力感应旋转屏幕方向功能。</span></li><li><span>Demo新增手势滑动可以调整播放进度和音量大小。</span></li><li><span>Demo新增首次加载失败切换到备用线路。</span></li><li><span>Demo优化压缩功能。</span></li></ol><h2 id='version-333'><span>Version 3.3.3</span></h2><p><span>发布时间:2019-08-22</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK优化兼容性。</span></li><li><span>Demo优化视频压缩功能。</span></li></ol><h2 id='version-330'><span>Version 3.3.0</span></h2><p><span>发布时间:2019-08-12</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK上传视频新增添加水印功能。</span></li><li><span>SDK新增防录屏功能。</span></li></ol><h2 id='version-320'><span>Version 3.2.0</span></h2><p><span>发布时间:2019-08-01</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo新增投屏功能。</span></li><li><span>Demo优化问答功能。</span></li></ol><h2 id='version-310'><span>Version 3.1.0</span></h2><p><span>发布时间:2019-07-03</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增课堂练习功能。 </span></li></ol><h2 id='version-300'><span>Version 3.0.0</span></h2><p><span>发布时间:2019-06-18</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo全新升级。 </span></li><li><span>新增使用gradle方式引入SDK。</span></li><li><span>Demo新增批量下载,下载和上传新增全部暂停和全部开始操作。</span></li><li><span>SDK 优化下载功能。</span></li><li><span>SDK优化错误码,错误码分类更详细。</span></li><li><span>DRM版本和VR版本的功能合并到新Demo。</span></li></ol><h2 id='version-2210'><span>Version 2.21.0</span></h2><p><span>发布时间:2019-06-14</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo优化问答功能。 </span></li><li><span>SDK优化下载功能。</span></li></ol><h2 id='version-2200'><span>Version 2.20.0</span></h2><p><span>发布时间:2019-05-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增访客信息收集器功能。 </span></li><li><span>SDK修复大文件下载和播放的问题。</span></li></ol><h2 id='version-2190'><span>Version 2.19.0 </span></h2><p><span>发布时间:2019-03-06</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo新增播放加密音频功能。 </span></li><li><span>Demo新增由于断网导致的下载暂停,在恢复连接网络后自动启动下载。</span></li><li><span>Demo修复m3u8格式的视频在断网后重连网络不能续播的问题。</span></li></ol><h2 id='version-2180'><span>Version 2.18.0 </span></h2><p><span>发布时间:2019-01-28</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增双字幕切换功能。 </span></li><li><span>Demo新增了下载重试次数和重试间隔的设置。</span></li><li><span>SDK将默认下载重试次数改为10次,默认重试间隔改为3000ms。</span></li><li><span>播放本地加密视频的方法由setDRMVideoPath改为setOfflineVideoPath。</span></li></ol><h2 id='version-2171'><span>Version 2.17.1 </span></h2><p><span>发布时间:2018-12-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo增加首次播放视频时若主线路出错则自动切换线路播放的功能。 </span></li><li><span>Demo优化网络检测功能。</span></li></ol><h2 id='version-2170'><span>Version 2.17.0 </span></h2><p><span>发布时间:2018-11-27</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK修复本地播放拖动可能卡住或有杂音的问题。 </span></li><li><span>SDK修复常速本地播放可能加载失败的问题。</span></li><li><span>SDK修改了原片实时播放的逻辑。</span></li><li><span>Demo新增网络检测功能。</span></li><li><span>Demo视频问答增加单选和多选标识。</span></li><li><span>Demo修复了一些兼容性问题和Bug,提升稳定性。</span></li><li><span>Demo适配Android 9.0。</span></li></ol><h2 id='version-2162'><span>Version 2.16.2 </span></h2><p><span>发布时间:2018-10-10</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK修复流中断重试机制。 </span></li><li><span>SDK新增授权下载功能。</span></li><li><span>Demo加密倍速播放功能增加出错时从错误处继续播放的功能。</span></li><li><span>Demo修复部分机型播放本地加密视频拖动后可能卡住的问题。</span></li><li><span>Demo修复在部分高系统版本机型退出播放后可能闪退的问题。</span></li></ol><h2 id='version-2160'><span>Version 2.16.0</span></h2><p><span>发布时间:2018-08-29</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增授权验证功能。 </span></li><li><span>SDK修复播卡统计功能。</span></li><li><span>Demo新增授权验证的演示功能。</span></li></ol><h2 id='version-2151-1'><span>Version 2.15.1</span></h2><p><span>发布时间:2018-07-10</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo新增视频压缩功能。 </span></li></ol><h2 id='version-2151-2'><span>Version 2.15.1</span></h2><p><span>发布时间:2018-06-12</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增问答统计功能。 </span></li></ol><p>&nbsp;</p><p>&nbsp;</p></div></div>
<div id='write' class=''><h2 id='version-3165-1'><span>Version 3.16.5</span></h2><p><span>发布时间:2021-12-6 </span></p><p><span>更新内容:</span><br/><span>1.添加自定义跑马灯数据源功能</span><br/><span>2.添加播放相关状态</span><br/><span>3.修复历史bug </span></p><h2 id='version-3165-2'><span>Version 3.16.5</span></h2><p><span>发布时间:2021-12-6</span></p><p><span>更新内容:</span><br/><span>1.添加高版本存储适配</span><br/><span>2.图文打点功能优化</span></p><h2 id='version-3164'><span>Version 3.16.4</span></h2><p><span>发布时间:2021-11-16</span></p><p><span>更新内容:</span><br/><span>1.添加图文打点功能</span><br/><span>2.添加视频帧预览功能</span></p><h2 id='version-3162'><span>Version 3.16.2</span></h2><p><span>发布时间:2021-10-20</span></p><p><span>更新内容:</span><br/><span>1.添加知识点功能</span><br/><span>2.修复历史bug</span></p><h2 id='version-3161'><span>Version 3.16.1</span></h2><p><span>发布时间:2021-09-06</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>以api形式提供答题器是否显示的控制</span></li><li><span>以构造函数的方法设置进度拖动后,历史进度中的答题器的展示逻辑区分</span></li></ol><h2 id='version-3160'><span>Version 3.16.0</span></h2><p><span>发布时间:2021-07-08</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>添加答题器相关功能</span></li><li><span>优化网络波动造成的播放视频后的自动重连功能</span></li><li><span>功能优化</span></li></ol><h2 id='version-3154'><span>Version 3.15.4</span></h2><p><span>发布时间:2021-05-14</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>优化了部分逻辑与代码。 </span></li></ol><h2 id='version-3153'><span>Version 3.15.3</span></h2><p><span>发布时间:2021-05-14</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增自定义封面相关功能能。 </span></li></ol><h2 id='version-3151'><span>Version 3.15.1</span></h2><p><span>发布时间:2021-04-13</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增离线跑马灯功能。 </span></li></ol><h2 id='version-3150'><span>Version 3.15.0</span></h2><p><span>发布时间:2021-03-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增自适应字幕。 </span></li></ol><h2 id='version-3140'><span>Version 3.14.0</span></h2><p><span>发布时间:2021-01-19</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增自定义Logo功能。</span></li></ol><h2 id='version-3130'><span>Version 3.13.0</span></h2><p><span>发布时间:2021-01-11</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增防拖拽功能。</span></li></ol><h2 id='version-3120'><span>Version 3.12.0</span></h2><p><span>发布时间:2020-12-18</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>优化下载功能。</span></li></ol><h2 id='version-3110'><span>Version 3.11.0</span></h2><p><span>发布时间:2020-11-19</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增离线字幕功能。</span></li></ol><h2 id='version-3100'><span>Version 3.10.0</span></h2><p><span>发布时间:2020-10-20</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>优化课堂练习功能。</span></li></ol><h2 id='version-390'><span>Version 3.9.0</span></h2><p><span>发布时间:2020-09-24</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增片尾广告功能。</span></li></ol><h2 id='version-380'><span>Version 3.8.0</span></h2><p><span>发布时间:2020-08-27</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增动感视频功能。</span></li><li><span>新增批量获取下载地址的功能。</span></li></ol><h2 id='version-372'><span>Version 3.7.2</span></h2><p><span>发布时间:2020-08-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增自动切换线路功能。</span></li><li><span>优化Demo功能。</span></li></ol><h2 id='version-371'><span>Version 3.7.1</span></h2><p><span>发布时间:2020-07-14</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增平台统计功能。</span></li><li><span>优化SDK结构。</span></li></ol><h2 id='version-370'><span>Version 3.7.0</span></h2><p><span>发布时间:2020-06-19</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增弹幕功能。</span></li><li><span>新增显示网速功能。</span></li></ol><h2 id='version-360'><span>Version 3.6.0</span></h2><p><span>发布时间:2020-05-13</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增悬浮小窗播放功能。</span></li><li><span>新增视频截图功能。</span></li></ol><h2 id='version-352'><span>Version 3.5.2</span></h2><p><span>发布时间:2020-03-24</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增滑动调节亮度功能。</span></li></ol><h2 id='version-351'><span>Version 3.5.1</span></h2><p><span>发布时间:2020-03-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK增加跑马灯信息获取功能。</span></li></ol><h2 id='version-350'><span>Version 3.5.0</span></h2><p><span>发布时间:2020-03-13</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增跑马灯功能。</span></li><li><span>SDK新增音频统计功能。</span></li></ol><h2 id='version-341'><span>Version 3.4.1</span></h2><p><span>发布时间:2020-03-03</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增播放器获取播放时长和暂停时长功能。</span></li><li><span>SDK优化上传功能。</span></li></ol><h2 id='version-340'><span>Version 3.4.0</span></h2><p><span>发布时间:2019-12-16</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo新增重力感应旋转屏幕方向功能。</span></li><li><span>Demo新增手势滑动可以调整播放进度和音量大小。</span></li><li><span>Demo新增首次加载失败切换到备用线路。</span></li><li><span>Demo优化压缩功能。</span></li></ol><h2 id='version-333'><span>Version 3.3.3</span></h2><p><span>发布时间:2019-08-22</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK优化兼容性。</span></li><li><span>Demo优化视频压缩功能。</span></li></ol><h2 id='version-330'><span>Version 3.3.0</span></h2><p><span>发布时间:2019-08-12</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK上传视频新增添加水印功能。</span></li><li><span>SDK新增防录屏功能。</span></li></ol><h2 id='version-320'><span>Version 3.2.0</span></h2><p><span>发布时间:2019-08-01</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo新增投屏功能。</span></li><li><span>Demo优化问答功能。</span></li></ol><h2 id='version-310'><span>Version 3.1.0</span></h2><p><span>发布时间:2019-07-03</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增课堂练习功能。 </span></li></ol><h2 id='version-300'><span>Version 3.0.0</span></h2><p><span>发布时间:2019-06-18</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo全新升级。 </span></li><li><span>新增使用gradle方式引入SDK。</span></li><li><span>Demo新增批量下载,下载和上传新增全部暂停和全部开始操作。</span></li><li><span>SDK 优化下载功能。</span></li><li><span>SDK优化错误码,错误码分类更详细。</span></li><li><span>DRM版本和VR版本的功能合并到新Demo。</span></li></ol><h2 id='version-2210'><span>Version 2.21.0</span></h2><p><span>发布时间:2019-06-14</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo优化问答功能。 </span></li><li><span>SDK优化下载功能。</span></li></ol><h2 id='version-2200'><span>Version 2.20.0</span></h2><p><span>发布时间:2019-05-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增访客信息收集器功能。 </span></li><li><span>SDK修复大文件下载和播放的问题。</span></li></ol><h2 id='version-2190'><span>Version 2.19.0 </span></h2><p><span>发布时间:2019-03-06</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo新增播放加密音频功能。 </span></li><li><span>Demo新增由于断网导致的下载暂停,在恢复连接网络后自动启动下载。</span></li><li><span>Demo修复m3u8格式的视频在断网后重连网络不能续播的问题。</span></li></ol><h2 id='version-2180'><span>Version 2.18.0 </span></h2><p><span>发布时间:2019-01-28</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增双字幕切换功能。 </span></li><li><span>Demo新增了下载重试次数和重试间隔的设置。</span></li><li><span>SDK将默认下载重试次数改为10次,默认重试间隔改为3000ms。</span></li><li><span>播放本地加密视频的方法由setDRMVideoPath改为setOfflineVideoPath。</span></li></ol><h2 id='version-2171'><span>Version 2.17.1 </span></h2><p><span>发布时间:2018-12-17</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo增加首次播放视频时若主线路出错则自动切换线路播放的功能。 </span></li><li><span>Demo优化网络检测功能。</span></li></ol><h2 id='version-2170'><span>Version 2.17.0 </span></h2><p><span>发布时间:2018-11-27</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK修复本地播放拖动可能卡住或有杂音的问题。 </span></li><li><span>SDK修复常速本地播放可能加载失败的问题。</span></li><li><span>SDK修改了原片实时播放的逻辑。</span></li><li><span>Demo新增网络检测功能。</span></li><li><span>Demo视频问答增加单选和多选标识。</span></li><li><span>Demo修复了一些兼容性问题和Bug,提升稳定性。</span></li><li><span>Demo适配Android 9.0。</span></li></ol><h2 id='version-2162'><span>Version 2.16.2 </span></h2><p><span>发布时间:2018-10-10</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK修复流中断重试机制。 </span></li><li><span>SDK新增授权下载功能。</span></li><li><span>Demo加密倍速播放功能增加出错时从错误处继续播放的功能。</span></li><li><span>Demo修复部分机型播放本地加密视频拖动后可能卡住的问题。</span></li><li><span>Demo修复在部分高系统版本机型退出播放后可能闪退的问题。</span></li></ol><h2 id='version-2160'><span>Version 2.16.0</span></h2><p><span>发布时间:2018-08-29</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>SDK新增授权验证功能。 </span></li><li><span>SDK修复播卡统计功能。</span></li><li><span>Demo新增授权验证的演示功能。</span></li></ol><h2 id='version-2151-1'><span>Version 2.15.1</span></h2><p><span>发布时间:2018-07-10</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>Demo新增视频压缩功能。 </span></li></ol><h2 id='version-2151-2'><span>Version 2.15.1</span></h2><p><span>发布时间:2018-06-12</span></p><p><span>更新内容:</span></p><ol start='' ><li><span>新增问答统计功能。 </span></li></ol><p>&nbsp;</p><p>&nbsp;</p></div></div>
</body>
</html>
\ No newline at end of file
No preview for this file type
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment