Commit efef4d64 authored by Han Ruisong's avatar Han Ruisong
Browse files

升级到v3.5.2

1.新增滑动调节亮度功能。
parent d009f17d
No preview for this file type
No preview for this file type
......@@ -32,7 +32,7 @@ dependencies {
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
//获得场景视频SDK,必须引入
implementation 'com.bokecc:vod:3.5.1'
implementation 'com.bokecc:vod:3.5.2'
//播放加密视频必须引用http和drmv6
implementation 'com.bokecc:http:1.2.0'
implementation 'com.bokecc:drmv6:2.19.0'
......
......@@ -64,6 +64,7 @@ public class MainActivity extends AppCompatActivity {
setContentView(R.layout.activity_main);
MultiUtils.setStatusBarColor(this, R.color.transparent, true);
initView();
//初始化数据库和下载数据 没有开通授权播放和下载功能的账号 verificationCode可为空值
verificationCode = MultiUtils.getVerificationCode();
DownloadController.init(verificationCode);
......@@ -83,7 +84,6 @@ public class MainActivity extends AppCompatActivity {
//请求数据
initData();
}
private void initView() {
......
......@@ -35,6 +35,7 @@ import android.view.Surface;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.Button;
......@@ -309,12 +310,16 @@ public class MediaPlayActivity extends Activity implements View.OnClickListener,
private long lastSensorTime = 0;
private SensorManager sensorManager;
//滑动调节进度和音量
//滑动调节进度亮度和音量
private float downX, downY, upX, upY, xMove, yMove, absxMove, absyMove, lastX, lastY;
private AudioManager audioManager;
private int currentVolume, maxVolume;
private int maxBrightness = 100, halfWidth = 0, controlChange = 70;
private boolean isChangeBrightness = false;
private LinearLayout ll_volume;
private ProgressBar pb_volume;
private LinearLayout ll_brightness;
private ProgressBar pb_brightness;
private long slideProgress;
private TextView tv_slide_progress;
......@@ -437,7 +442,9 @@ public class MediaPlayActivity extends Activity implements View.OnClickListener,
ll_projection_screen = findViewById(R.id.ll_projection_screen);
ll_volume = findViewById(R.id.ll_volume);
ll_brightness = findViewById(R.id.ll_brightness);
pb_volume = findViewById(R.id.pb_volume);
pb_brightness = findViewById(R.id.pb_brightness);
tv_slide_progress = findViewById(R.id.tv_slide_progress);
mv_video = findViewById(R.id.mv_video);
......@@ -597,6 +604,11 @@ public class MediaPlayActivity extends Activity implements View.OnClickListener,
currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
pb_volume.setMax(maxVolume);
pb_volume.setProgress(currentVolume);
//获取当前亮度
currentBrightness = MultiUtils.getSystemBrightness(activity);
pb_brightness.setMax(maxBrightness);
pb_brightness.setProgress(currentBrightness);
//滑动调节
rl_play_video.setOnTouchListener(new View.OnTouchListener() {
@Override
......@@ -609,6 +621,15 @@ public class MediaPlayActivity extends Activity implements View.OnClickListener,
lastX = downX;
lastY = downY;
slideProgress = currentPosition;
halfWidth = MultiUtils.getScreenWidth(activity) / 2;
if (downX > halfWidth) {
isChangeBrightness = false;
controlChange = 70;
} else {
isChangeBrightness = true;
controlChange = 15;
}
break;
case MotionEvent.ACTION_MOVE:
......@@ -620,27 +641,50 @@ public class MediaPlayActivity extends Activity implements View.OnClickListener,
float absxMoveVolume = Math.abs(xMoveVolume);
float absyMoveVolume = Math.abs(yMoveVolume);
if (absyMoveVolume > absxMoveVolume && absyMoveVolume > 70 && !isLock) {
if (absyMoveVolume > absxMoveVolume && absyMoveVolume > controlChange && !isLock) {
lastX = x;
lastY = y;
currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//调节音量
int changeVolume = (int) (absyMoveVolume / 70);
if (yMoveVolume > 0) {
currentVolume = currentVolume - changeVolume;
if (isChangeBrightness) {
//调节亮度
int changeBrightness = (int) (absyMoveVolume / controlChange);
if (yMoveVolume > 0) {
currentBrightness = currentBrightness - changeBrightness;
} else {
currentBrightness = currentBrightness + changeBrightness;
}
if (currentBrightness < 0) {
currentBrightness = 0;
}
if (currentBrightness > maxBrightness) {
currentBrightness = maxBrightness;
}
ll_brightness.setVisibility(View.VISIBLE);
ll_volume.setVisibility(View.GONE);
changeBrightness(activity, currentBrightness);
pb_brightness.setProgress(currentBrightness);
} else {
currentVolume = currentVolume + changeVolume;
}
if (currentVolume < 0) {
currentVolume = 0;
}
currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//调节音量
int changeVolume = (int) (absyMoveVolume / controlChange);
if (yMoveVolume > 0) {
currentVolume = currentVolume - changeVolume;
} else {
currentVolume = currentVolume + changeVolume;
}
if (currentVolume < 0) {
currentVolume = 0;
}
if (currentVolume > maxVolume) {
currentVolume = maxVolume;
if (currentVolume > maxVolume) {
currentVolume = maxVolume;
}
ll_volume.setVisibility(View.VISIBLE);
ll_brightness.setVisibility(View.GONE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume, 0);
pb_volume.setProgress(currentVolume);
}
ll_volume.setVisibility(View.VISIBLE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume, 0);
pb_volume.setProgress(currentVolume);
} else if (absxMoveVolume > absyMoveVolume && absxMoveVolume > 50 && !isLock) {
lastX = x;
lastY = y;
......@@ -688,8 +732,7 @@ public class MediaPlayActivity extends Activity implements View.OnClickListener,
});
verificationCode = MultiUtils.getVerificationCode();
//获取当前亮度
currentBrightness = MultiUtils.getSystemBrightness(activity);
//获取上次播放的位置
videoPositionDBHelper = new VideoPositionDBHelper(ObjectBox.get());
getLastVideoPostion();
......@@ -722,6 +765,16 @@ public class MediaPlayActivity extends Activity implements View.OnClickListener,
}
/**
* brightnessValue 取值范围0-100
*/
private void changeBrightness(Activity context, int brightnessValue) {
Window localWindow = context.getWindow();
WindowManager.LayoutParams localLayoutParams = localWindow.getAttributes();
localLayoutParams.screenBrightness = brightnessValue / 100.0F;
localWindow.setAttributes(localLayoutParams);
}
private void getLastVideoPostion() {
lastVideoPosition = videoPositionDBHelper.getVideoPosition(videoId);
if (lastVideoPosition == null) {
......@@ -1943,6 +1996,8 @@ public class MediaPlayActivity extends Activity implements View.OnClickListener,
ll_progress_and_fullscreen.setVisibility(View.INVISIBLE);
ll_title_and_audio.setVisibility(View.INVISIBLE);
ll_volume.setVisibility(View.GONE);
ll_brightness.setVisibility(View.GONE);
tv_slide_progress.setVisibility(View.GONE);
}
//切换清晰度
......
......@@ -34,6 +34,7 @@ import android.view.Surface;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.Button;
......@@ -315,12 +316,16 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
private long lastSensorTime = 0;
private SensorManager sensorManager;
//滑动调节进度和音量
//滑动调节进度亮度和音量
private float downX, downY, upX, upY, xMove, yMove, absxMove, absyMove, lastX, lastY;
private AudioManager audioManager;
private int currentVolume, maxVolume;
private int maxBrightness = 100, halfWidth = 0, controlChange = 70;
private boolean isChangeBrightness = false;
private LinearLayout ll_volume;
private ProgressBar pb_volume;
private LinearLayout ll_brightness;
private ProgressBar pb_brightness;
private long slideProgress;
private TextView tv_slide_progress;
......@@ -436,7 +441,9 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
btn_close_projection = findViewById(R.id.btn_close_projection);
ll_volume = findViewById(R.id.ll_volume);
ll_brightness = findViewById(R.id.ll_brightness);
pb_volume = findViewById(R.id.pb_volume);
pb_brightness = findViewById(R.id.pb_brightness);
tv_slide_progress = findViewById(R.id.tv_slide_progress);
mv_video = findViewById(R.id.mv_video);
......@@ -606,6 +613,12 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
pb_volume.setMax(maxVolume);
pb_volume.setProgress(currentVolume);
//获取当前亮度
currentBrightness = MultiUtils.getSystemBrightness(activity);
pb_brightness.setMax(maxBrightness);
pb_brightness.setProgress(currentBrightness);
//滑动调节
rl_play_video.setOnTouchListener(new View.OnTouchListener() {
@Override
......@@ -617,6 +630,16 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
downY = event.getY();
lastX = downX;
lastY = downY;
slideProgress = currentPosition;
halfWidth = MultiUtils.getScreenWidth(activity) / 2;
if (downX > halfWidth) {
isChangeBrightness = false;
controlChange = 70;
} else {
isChangeBrightness = true;
controlChange = 15;
}
break;
case MotionEvent.ACTION_MOVE:
......@@ -628,27 +651,50 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
float absxMoveVolume = Math.abs(xMoveVolume);
float absyMoveVolume = Math.abs(yMoveVolume);
if (absyMoveVolume > absxMoveVolume && absyMoveVolume > 70 && !isLock) {
if (absyMoveVolume > absxMoveVolume && absyMoveVolume > controlChange && !isLock) {
lastX = x;
lastY = y;
currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//调节音量
int changeVolume = (int) (absyMoveVolume / 70);
if (yMoveVolume > 0) {
currentVolume = currentVolume - changeVolume;
if (isChangeBrightness) {
//调节亮度
int changeBrightness = (int) (absyMoveVolume / controlChange);
if (yMoveVolume > 0) {
currentBrightness = currentBrightness - changeBrightness;
} else {
currentBrightness = currentBrightness + changeBrightness;
}
if (currentBrightness < 0) {
currentBrightness = 0;
}
if (currentBrightness > maxBrightness) {
currentBrightness = maxBrightness;
}
ll_brightness.setVisibility(View.VISIBLE);
ll_volume.setVisibility(View.GONE);
changeBrightness(activity, currentBrightness);
pb_brightness.setProgress(currentBrightness);
} else {
currentVolume = currentVolume + changeVolume;
}
if (currentVolume < 0) {
currentVolume = 0;
}
currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//调节音量
int changeVolume = (int) (absyMoveVolume / controlChange);
if (yMoveVolume > 0) {
currentVolume = currentVolume - changeVolume;
} else {
currentVolume = currentVolume + changeVolume;
}
if (currentVolume < 0) {
currentVolume = 0;
}
if (currentVolume > maxVolume) {
currentVolume = maxVolume;
if (currentVolume > maxVolume) {
currentVolume = maxVolume;
}
ll_volume.setVisibility(View.VISIBLE);
ll_brightness.setVisibility(View.GONE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume, 0);
pb_volume.setProgress(currentVolume);
}
ll_volume.setVisibility(View.VISIBLE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume, 0);
pb_volume.setProgress(currentVolume);
} else if (absxMoveVolume > absyMoveVolume && absxMoveVolume > 50 && !isLock) {
lastX = x;
lastY = y;
......@@ -673,8 +719,6 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
tv_slide_progress.setVisibility(View.VISIBLE);
tv_slide_progress.setText(currentTime + "/" + videoTime);
}
break;
case MotionEvent.ACTION_UP:
......@@ -691,7 +735,6 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
tv_slide_progress.setVisibility(View.GONE);
player.seekTo((int) slideProgress);
}
break;
}
return false;
......@@ -699,8 +742,6 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
});
verificationCode = MultiUtils.getVerificationCode();
//获取当前亮度
currentBrightness = MultiUtils.getSystemBrightness(activity);
//获取上次播放的位置
videoPositionDBHelper = new VideoPositionDBHelper(ObjectBox.get());
getLastVideoPostion();
......@@ -732,6 +773,16 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
}
}
/**
* brightnessValue 取值范围0-100
*/
private void changeBrightness(Activity context, int brightnessValue) {
Window localWindow = context.getWindow();
WindowManager.LayoutParams localLayoutParams = localWindow.getAttributes();
localLayoutParams.screenBrightness = brightnessValue / 100.0F;
localWindow.setAttributes(localLayoutParams);
}
private void getLastVideoPostion() {
lastVideoPosition = videoPositionDBHelper.getVideoPosition(videoId);
if (lastVideoPosition == null) {
......@@ -1970,6 +2021,8 @@ public class SpeedPlayActivity extends Activity implements View.OnClickListener,
ll_progress_and_fullscreen.setVisibility(View.INVISIBLE);
ll_title_and_audio.setVisibility(View.INVISIBLE);
ll_volume.setVisibility(View.GONE);
ll_brightness.setVisibility(View.GONE);
tv_slide_progress.setVisibility(View.GONE);
}
//切换清晰度
......
......@@ -747,6 +747,40 @@
</LinearLayout>
<LinearLayout
android:id="@+id/ll_brightness"
android:layout_width="150dp"
android:layout_height="30dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="@drawable/volume_set_bac"
android:gravity="center"
android:orientation="horizontal"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="亮度"
android:textColor="@color/white"
android:textSize="18sp" />
<ProgressBar
android:id="@+id/pb_brightness"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="0dp"
android:layout_height="4dp"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:indeterminate="false"
android:maxHeight="4dp"
android:minHeight="4dp"
android:progressDrawable="@drawable/seekbar_horizontal" />
</LinearLayout>
<TextView
android:id="@+id/tv_slide_progress"
android:layout_width="wrap_content"
......
......@@ -756,6 +756,40 @@
</LinearLayout>
<LinearLayout
android:id="@+id/ll_brightness"
android:layout_width="150dp"
android:layout_height="30dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="@drawable/volume_set_bac"
android:gravity="center"
android:orientation="horizontal"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="亮度"
android:textColor="@color/white"
android:textSize="18sp" />
<ProgressBar
android:id="@+id/pb_brightness"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="0dp"
android:layout_height="4dp"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:indeterminate="false"
android:maxHeight="4dp"
android:minHeight="4dp"
android:progressDrawable="@drawable/seekbar_horizontal" />
</LinearLayout>
<TextView
android:id="@+id/tv_slide_progress"
android:layout_width="wrap_content"
......
......@@ -228,6 +228,6 @@ header, .context-menu, .megamenu-content, footer { font-family: "Segoe UI", Aria
</style>
</head>
<body class='typora-export os-windows' >
<div id='write' class = 'is-node'><p>获得场景视频Android SDK是基于Android API实现的类库,支持Android2.3及以上版本,开发者可通过此SDK对接获得场景视频云服务平台,进行播放、上传和下载操作。</p><h2><a name='header-n2' class='md-header-anchor '></a>1.1 功能特性</h2><figure><table><thead><tr><th style='text-align:left;' >功能</th><th style='text-align:left;' >描述</th></tr></thead><tbody><tr><td style='text-align:left;' >视频播放</td><td style='text-align:left;' >支持视频播放和本地播放</td></tr><tr><td style='text-align:left;' >视频下载</td><td style='text-align:left;' >支持断点续传下载视频</td></tr><tr><td style='text-align:left;' >音频播放</td><td style='text-align:left;' >支持音频在线播放和本地播放</td></tr><tr><td style='text-align:left;' >音频下载</td><td style='text-align:left;' >支持音频下载</td></tr><tr><td style='text-align:left;' >视频上传</td><td style='text-align:left;' >支持断点续传视频信息和视频文件</td></tr><tr><td style='text-align:left;' >播放统计</td><td style='text-align:left;' >支持用户自定义参数实现播放的统计</td></tr><tr><td style='text-align:left;' >视频打点</td><td style='text-align:left;' >支持用户自定义视频打点功能的回调</td></tr><tr><td style='text-align:left;' >视频问答</td><td style='text-align:left;' >支持用户自定义视频问答功能的回调</td></tr><tr><td style='text-align:left;' >课堂练习</td><td style='text-align:left;' >支持在播放视频的时候展示课堂练习</td></tr><tr><td style='text-align:left;' >视频字幕</td><td style='text-align:left;' >支持双字幕切换显示</td></tr><tr><td style='text-align:left;' >授权验证</td><td style='text-align:left;' >支持为视频配置授权码</td></tr><tr><td style='text-align:left;' >访客信息收集</td><td style='text-align:left;' >支持在播放视频的时候弹出访客信息收集框</td></tr><tr><td style='text-align:left;' >投屏功能</td><td style='text-align:left;' >支持投屏播放</td></tr><tr><td style='text-align:left;' >防录屏</td><td style='text-align:left;' >支持播放时防录屏</td></tr><tr><td style='text-align:left;' >视频水印</td><td style='text-align:left;' >支持上传视频时配置水印</td></tr><tr><td style='text-align:left;' >广告功能</td><td style='text-align:left;' >支持添加视频前贴广告和暂停广告</td></tr><tr><td style='text-align:left;' >重力感应旋转方向</td><td style='text-align:left;' >支持播放视频时重力感应旋转方向</td></tr><tr><td style='text-align:left;' >手势调整进度和音量</td><td style='text-align:left;' >支持手势滑动调整进度和音量大小</td></tr><tr><td style='text-align:left;' >首次加载失败启用备用线路</td><td style='text-align:left;' >支持首次加载失败切换到备用线路</td></tr><tr><td style='text-align:left;' >跑马灯功能</td><td style='text-align:left;' >支持播放时使用跑马灯</td></tr></tbody></table></figure><h2><a name='header-n67' class='md-header-anchor '></a>1.2 阅读对象</h2><p>本文档为技术文档,需要阅读者:</p><ul><li>具备基本的Android开发能力。</li><li>准备接入获得场景视频的点播SDK功能。</li><li>对获得场景视频点播产品使用方法有基础的了解。</li></ul></div>
<div id='write' class = 'is-node'><p>获得场景视频Android SDK是基于Android API实现的类库,支持Android2.3及以上版本,开发者可通过此SDK对接获得场景视频云服务平台,进行播放、上传和下载操作。</p><h2><a name='header-n2' class='md-header-anchor '></a>1.1 功能特性</h2><figure><table><thead><tr><th style='text-align:left;' >功能</th><th style='text-align:left;' >描述</th></tr></thead><tbody><tr><td style='text-align:left;' >视频播放</td><td style='text-align:left;' >支持视频播放和本地播放</td></tr><tr><td style='text-align:left;' >视频下载</td><td style='text-align:left;' >支持断点续传下载视频</td></tr><tr><td style='text-align:left;' >音频播放</td><td style='text-align:left;' >支持音频在线播放和本地播放</td></tr><tr><td style='text-align:left;' >音频下载</td><td style='text-align:left;' >支持音频下载</td></tr><tr><td style='text-align:left;' >视频上传</td><td style='text-align:left;' >支持断点续传视频信息和视频文件</td></tr><tr><td style='text-align:left;' >播放统计</td><td style='text-align:left;' >支持用户自定义参数实现播放的统计</td></tr><tr><td style='text-align:left;' >视频打点</td><td style='text-align:left;' >支持用户自定义视频打点功能的回调</td></tr><tr><td style='text-align:left;' >视频问答</td><td style='text-align:left;' >支持用户自定义视频问答功能的回调</td></tr><tr><td style='text-align:left;' >课堂练习</td><td style='text-align:left;' >支持在播放视频的时候展示课堂练习</td></tr><tr><td style='text-align:left;' >视频字幕</td><td style='text-align:left;' >支持双字幕切换显示</td></tr><tr><td style='text-align:left;' >授权验证</td><td style='text-align:left;' >支持为视频配置授权码</td></tr><tr><td style='text-align:left;' >访客信息收集</td><td style='text-align:left;' >支持在播放视频的时候弹出访客信息收集框</td></tr><tr><td style='text-align:left;' >投屏功能</td><td style='text-align:left;' >支持投屏播放</td></tr><tr><td style='text-align:left;' >防录屏</td><td style='text-align:left;' >支持播放时防录屏</td></tr><tr><td style='text-align:left;' >视频水印</td><td style='text-align:left;' >支持上传视频时配置水印</td></tr><tr><td style='text-align:left;' >广告功能</td><td style='text-align:left;' >支持添加视频前贴广告和暂停广告</td></tr><tr><td style='text-align:left;' >重力感应旋转方向</td><td style='text-align:left;' >支持播放视频时重力感应旋转方向</td></tr><tr><td style='text-align:left;' >手势调整进度、亮度和音量</td><td style='text-align:left;' >支持手势滑动调整进度、亮度和音量大小</td></tr><tr><td style='text-align:left;' >首次加载失败启用备用线路</td><td style='text-align:left;' >支持首次加载失败切换到备用线路</td></tr><tr><td style='text-align:left;' >跑马灯功能</td><td style='text-align:left;' >支持播放时使用跑马灯</td></tr></tbody></table></figure><h2><a name='header-n67' class='md-header-anchor '></a>1.2 阅读对象</h2><p>本文档为技术文档,需要阅读者:</p><ul><li>具备基本的Android开发能力。</li><li>准备接入获得场景视频的点播SDK功能。</li><li>对获得场景视频点播产品使用方法有基础的了解。</li></ul></div>
</body>
</html>
\ No newline at end of file
......@@ -228,6 +228,6 @@ header, .context-menu, .megamenu-content, footer { font-family: "Segoe UI", Aria
</style>
</head>
<body class='typora-export os-windows' >
<div id='write' class = 'is-node'><h2><a name='header-n0' class='md-header-anchor '></a>Version 3.5.1</h2><p>发布时间:2020-03-17</p><p>更新内容:</p><ol start='' ><li>SDK增加跑马灯信息获取功能。</li></ol><h2><a name='header-n7' class='md-header-anchor '></a>Version 3.5.0</h2><p>发布时间:2020-03-13</p><p>更新内容:</p><ol start='' ><li>SDK新增跑马灯功能。</li><li>SDK新增音频统计功能。</li></ol><h2><a name='header-n15' class='md-header-anchor '></a>Version 3.4.1</h2><p>发布时间:2020-03-03</p><p>更新内容:</p><ol start='' ><li>SDK新增播放器获取播放时长和暂停时长功能。</li><li>SDK优化上传功能。</li></ol><h2><a name='header-n23' class='md-header-anchor '></a>Version 3.4.0</h2><p>发布时间:2019-12-16</p><p>更新内容:</p><ol start='' ><li>Demo新增重力感应旋转屏幕方向功能。</li><li>Demo新增手势滑动可以调整播放进度和音量大小。</li><li>Demo新增首次加载失败切换到备用线路。</li><li>Demo优化压缩功能。</li></ol><h2><a name='header-n35' class='md-header-anchor '></a>Version 3.3.3</h2><p>发布时间:2019-08-22</p><p>更新内容:</p><ol start='' ><li>SDK优化兼容性。</li><li>Demo优化视频压缩功能。</li></ol><h2><a name='header-n43' class='md-header-anchor '></a>Version 3.3.0</h2><p>发布时间:2019-08-12</p><p>更新内容:</p><ol start='' ><li>SDK上传视频新增添加水印功能。</li><li>SDK新增防录屏功能。</li></ol><h2><a name='header-n51' class='md-header-anchor '></a>Version 3.2.0</h2><p>发布时间:2019-08-01</p><p>更新内容:</p><ol start='' ><li>Demo新增投屏功能。</li><li>Demo优化问答功能。</li></ol><h2><a name='header-n59' class='md-header-anchor '></a>Version 3.1.0</h2><p>发布时间:2019-07-03</p><p>更新内容:</p><ol start='' ><li>SDK新增课堂练习功能。 </li></ol><h2><a name='header-n66' class='md-header-anchor '></a>Version 3.0.0</h2><p>发布时间:2019-06-18</p><p>更新内容:</p><ol start='' ><li>Demo全新升级。 </li><li>新增使用gradle方式引入SDK。</li><li>Demo新增批量下载,下载和上传新增全部暂停和全部开始操作。</li><li>SDK 优化下载功能。</li><li>SDK优化错误码,错误码分类更详细。</li><li>DRM版本和VR版本的功能合并到新Demo。</li></ol><h2><a name='header-n82' class='md-header-anchor '></a>Version 2.21.0</h2><p>发布时间:2019-06-14</p><p>更新内容:</p><ol start='' ><li>Demo优化问答功能。 </li><li>SDK优化下载功能。</li></ol><h2><a name='header-n90' class='md-header-anchor '></a>Version 2.20.0</h2><p>发布时间:2019-05-17</p><p>更新内容:</p><ol start='' ><li>SDK新增访客信息收集器功能。 </li><li>SDK修复大文件下载和播放的问题。</li></ol><h2><a name='header-n99' class='md-header-anchor '></a>Version 2.19.0 </h2><p>发布时间:2019-03-06</p><p>更新内容:</p><ol start='' ><li>Demo新增播放加密音频功能。 </li><li>Demo新增由于断网导致的下载暂停,在恢复连接网络后自动启动下载。</li><li>Demo修复m3u8格式的视频在断网后重连网络不能续播的问题。</li></ol><h2><a name='header-n110' class='md-header-anchor '></a>Version 2.18.0 </h2><p>发布时间:2019-01-28</p><p>更新内容:</p><ol start='' ><li>SDK新增双字幕切换功能。 </li><li>Demo新增了下载重试次数和重试间隔的设置。</li><li>SDK将默认下载重试次数改为10次,默认重试间隔改为3000ms。</li><li>播放本地加密视频的方法由setDRMVideoPath改为setOfflineVideoPath。</li></ol><h2><a name='header-n123' class='md-header-anchor '></a>Version 2.17.1 </h2><p>发布时间:2018-12-17</p><p>更新内容:</p><ol start='' ><li>Demo增加首次播放视频时若主线路出错则自动切换线路播放的功能。 </li><li>Demo优化网络检测功能。</li></ol><h2><a name='header-n132' class='md-header-anchor '></a>Version 2.17.0 </h2><p>发布时间:2018-11-27</p><p>更新内容:</p><ol start='' ><li>SDK修复本地播放拖动可能卡住或有杂音的问题。 </li><li>SDK修复常速本地播放可能加载失败的问题。</li><li>SDK修改了原片实时播放的逻辑。</li><li>Demo新增网络检测功能。</li><li>Demo视频问答增加单选和多选标识。</li><li>Demo修复了一些兼容性问题和Bug,提升稳定性。</li><li>Demo适配Android 9.0。</li></ol><h2><a name='header-n151' class='md-header-anchor '></a>Version 2.16.2 </h2><p>发布时间:2018-10-10</p><p>更新内容:</p><ol start='' ><li>SDK修复流中断重试机制。 </li><li>SDK新增授权下载功能。</li><li>Demo加密倍速播放功能增加出错时从错误处继续播放的功能。</li><li>Demo修复部分机型播放本地加密视频拖动后可能卡住的问题。</li><li>Demo修复在部分高系统版本机型退出播放后可能闪退的问题。</li></ol><h2><a name='header-n165' class='md-header-anchor '></a>Version 2.16.0</h2><p>发布时间:2018-08-29</p><p>更新内容:</p><ol start='' ><li>SDK新增授权验证功能。 </li><li>SDK修复播卡统计功能。</li><li>Demo新增授权验证的演示功能。</li></ol><h2><a name='header-n176' class='md-header-anchor '></a>Version 2.15.1</h2><p>发布时间:2018-07-10</p><p>更新内容:</p><ol start='' ><li>Demo新增视频压缩功能。 </li></ol><h2><a name='header-n183' class='md-header-anchor '></a>Version 2.15.1</h2><p>发布时间:2018-06-12</p><p>更新内容:</p><ol start='' ><li>新增问答统计功能。 </li></ol><p>&nbsp;</p><p>&nbsp;</p></div>
<div id='write' class = 'is-node'><h2><a name='header-n0' class='md-header-anchor '></a>Version 3.5.2</h2><p>发布时间:2020-03-24</p><p>更新内容:</p><ol start='' ><li>新增滑动调节亮度功能。</li></ol><h2><a name='header-n7' class='md-header-anchor '></a>Version 3.5.1</h2><p>发布时间:2020-03-17</p><p>更新内容:</p><ol start='' ><li>SDK增加跑马灯信息获取功能。</li></ol><h2><a name='header-n13' class='md-header-anchor '></a>Version 3.5.0</h2><p>发布时间:2020-03-13</p><p>更新内容:</p><ol start='' ><li>SDK新增跑马灯功能。</li><li>SDK新增音频统计功能。</li></ol><h2><a name='header-n21' class='md-header-anchor '></a>Version 3.4.1</h2><p>发布时间:2020-03-03</p><p>更新内容:</p><ol start='' ><li>SDK新增播放器获取播放时长和暂停时长功能。</li><li>SDK优化上传功能。</li></ol><h2><a name='header-n29' class='md-header-anchor '></a>Version 3.4.0</h2><p>发布时间:2019-12-16</p><p>更新内容:</p><ol start='' ><li>Demo新增重力感应旋转屏幕方向功能。</li><li>Demo新增手势滑动可以调整播放进度和音量大小。</li><li>Demo新增首次加载失败切换到备用线路。</li><li>Demo优化压缩功能。</li></ol><h2><a name='header-n41' class='md-header-anchor '></a>Version 3.3.3</h2><p>发布时间:2019-08-22</p><p>更新内容:</p><ol start='' ><li>SDK优化兼容性。</li><li>Demo优化视频压缩功能。</li></ol><h2><a name='header-n49' class='md-header-anchor '></a>Version 3.3.0</h2><p>发布时间:2019-08-12</p><p>更新内容:</p><ol start='' ><li>SDK上传视频新增添加水印功能。</li><li>SDK新增防录屏功能。</li></ol><h2><a name='header-n57' class='md-header-anchor '></a>Version 3.2.0</h2><p>发布时间:2019-08-01</p><p>更新内容:</p><ol start='' ><li>Demo新增投屏功能。</li><li>Demo优化问答功能。</li></ol><h2><a name='header-n65' class='md-header-anchor '></a>Version 3.1.0</h2><p>发布时间:2019-07-03</p><p>更新内容:</p><ol start='' ><li>SDK新增课堂练习功能。 </li></ol><h2><a name='header-n72' class='md-header-anchor '></a>Version 3.0.0</h2><p>发布时间:2019-06-18</p><p>更新内容:</p><ol start='' ><li>Demo全新升级。 </li><li>新增使用gradle方式引入SDK。</li><li>Demo新增批量下载,下载和上传新增全部暂停和全部开始操作。</li><li>SDK 优化下载功能。</li><li>SDK优化错误码,错误码分类更详细。</li><li>DRM版本和VR版本的功能合并到新Demo。</li></ol><h2><a name='header-n88' class='md-header-anchor '></a>Version 2.21.0</h2><p>发布时间:2019-06-14</p><p>更新内容:</p><ol start='' ><li>Demo优化问答功能。 </li><li>SDK优化下载功能。</li></ol><h2><a name='header-n96' class='md-header-anchor '></a>Version 2.20.0</h2><p>发布时间:2019-05-17</p><p>更新内容:</p><ol start='' ><li>SDK新增访客信息收集器功能。 </li><li>SDK修复大文件下载和播放的问题。</li></ol><h2><a name='header-n105' class='md-header-anchor '></a>Version 2.19.0 </h2><p>发布时间:2019-03-06</p><p>更新内容:</p><ol start='' ><li>Demo新增播放加密音频功能。 </li><li>Demo新增由于断网导致的下载暂停,在恢复连接网络后自动启动下载。</li><li>Demo修复m3u8格式的视频在断网后重连网络不能续播的问题。</li></ol><h2><a name='header-n116' class='md-header-anchor '></a>Version 2.18.0 </h2><p>发布时间:2019-01-28</p><p>更新内容:</p><ol start='' ><li>SDK新增双字幕切换功能。 </li><li>Demo新增了下载重试次数和重试间隔的设置。</li><li>SDK将默认下载重试次数改为10次,默认重试间隔改为3000ms。</li><li>播放本地加密视频的方法由setDRMVideoPath改为setOfflineVideoPath。</li></ol><h2><a name='header-n129' class='md-header-anchor '></a>Version 2.17.1 </h2><p>发布时间:2018-12-17</p><p>更新内容:</p><ol start='' ><li>Demo增加首次播放视频时若主线路出错则自动切换线路播放的功能。 </li><li>Demo优化网络检测功能。</li></ol><h2><a name='header-n138' class='md-header-anchor '></a>Version 2.17.0 </h2><p>发布时间:2018-11-27</p><p>更新内容:</p><ol start='' ><li>SDK修复本地播放拖动可能卡住或有杂音的问题。 </li><li>SDK修复常速本地播放可能加载失败的问题。</li><li>SDK修改了原片实时播放的逻辑。</li><li>Demo新增网络检测功能。</li><li>Demo视频问答增加单选和多选标识。</li><li>Demo修复了一些兼容性问题和Bug,提升稳定性。</li><li>Demo适配Android 9.0。</li></ol><h2><a name='header-n157' class='md-header-anchor '></a>Version 2.16.2 </h2><p>发布时间:2018-10-10</p><p>更新内容:</p><ol start='' ><li>SDK修复流中断重试机制。 </li><li>SDK新增授权下载功能。</li><li>Demo加密倍速播放功能增加出错时从错误处继续播放的功能。</li><li>Demo修复部分机型播放本地加密视频拖动后可能卡住的问题。</li><li>Demo修复在部分高系统版本机型退出播放后可能闪退的问题。</li></ol><h2><a name='header-n171' class='md-header-anchor '></a>Version 2.16.0</h2><p>发布时间:2018-08-29</p><p>更新内容:</p><ol start='' ><li>SDK新增授权验证功能。 </li><li>SDK修复播卡统计功能。</li><li>Demo新增授权验证的演示功能。</li></ol><h2><a name='header-n182' class='md-header-anchor '></a>Version 2.15.1</h2><p>发布时间:2018-07-10</p><p>更新内容:</p><ol start='' ><li>Demo新增视频压缩功能。 </li></ol><h2><a name='header-n189' class='md-header-anchor '></a>Version 2.15.1</h2><p>发布时间:2018-06-12</p><p>更新内容:</p><ol start='' ><li>新增问答统计功能。 </li></ol><p>&nbsp;</p><p>&nbsp;</p></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