Skip to content

Commit 27510c4

Browse files
author
zengxuhong
committed
bump version to 3.3.0.2
1 parent bfc7183 commit 27510c4

File tree

15 files changed

+186
-99
lines changed

15 files changed

+186
-99
lines changed

demo/.idea/libraries/support_annotations_24_0_0.xml

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/.idea/libraries/support_v4_24_0_0.xml

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/.idea/misc.xml

Lines changed: 16 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/.idea/workspace.xml

Lines changed: 51 additions & 56 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ apply plugin: 'com.android.application'
1111
dependencies {
1212
compile fileTree(dir: 'libs', include: '*.jar')
1313
compile fileTree(dir: 'libs/armeabi-v7a', include: '*/so')
14+
compile 'com.android.support:support-v4:24.0.0'
1415
}
1516

1617
android {

demo/demo.iml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,25 +56,26 @@
5656
<sourceFolder url="file://$MODULE_DIR$/assets" type="java-resource" />
5757
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
5858
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
59-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
60-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
61-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
62-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
63-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
64-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
65-
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
6659
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
6760
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
6861
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
6962
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
7063
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
7164
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
7265
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
66+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
67+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
68+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
69+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
70+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
71+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
72+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
7373
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
7474
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
7575
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
7676
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
7777
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
78+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/24.0.0/jars" />
7879
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
7980
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
8081
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/mockable-android-21.jar" />
@@ -89,9 +90,11 @@
8990
</content>
9091
<orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" />
9192
<orderEntry type="sourceFolder" forTests="false" />
92-
<orderEntry type="library" exported="" scope="TEST" name="mockable-android-21" level="project" />
93-
<orderEntry type="library" exported="" name="ksylive3.0" level="project" />
9493
<orderEntry type="library" exported="" name="libksyplayer" level="project" />
9594
<orderEntry type="library" exported="" name="libksystat" level="project" />
95+
<orderEntry type="library" exported="" name="support-annotations-24.0.0" level="project" />
96+
<orderEntry type="library" exported="" name="ksylive3.0" level="project" />
97+
<orderEntry type="library" exported="" name="support-v4-24.0.0" level="project" />
98+
<orderEntry type="library" exported="" scope="TEST" name="mockable-android-21" level="project" />
9699
</component>
97100
</module>
-1.17 MB
Binary file not shown.

demo/libs/ksylive3.0.jar

5.25 KB
Binary file not shown.

demo/src/com/ksy/recordlib/demo/CameraActivity.java

Lines changed: 72 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
package com.ksy.recordlib.demo;
22

3+
import android.annotation.TargetApi;
34
import android.app.Activity;
45
import android.app.AlertDialog;
56
import android.content.Context;
67
import android.content.DialogInterface;
78
import android.content.Intent;
89
import android.content.pm.ActivityInfo;
10+
import android.content.pm.PackageManager;
911
import android.graphics.Bitmap;
1012
import android.graphics.BitmapFactory;
1113
import android.graphics.Color;
1214
import android.opengl.GLSurfaceView;
15+
import android.os.Build;
1316
import android.os.Bundle;
1417
import android.os.Handler;
1518
import android.os.Message;
1619
import android.os.SystemClock;
20+
import android.support.v4.content.PermissionChecker;
1721
import android.text.TextUtils;
1822
import android.util.Log;
1923
import android.view.KeyEvent;
@@ -44,7 +48,6 @@
4448
import java.util.concurrent.ExecutorService;
4549
import java.util.concurrent.Executors;
4650

47-
4851
public class CameraActivity extends Activity {
4952

5053
private static final String TAG = "CameraActivity";
@@ -212,6 +215,7 @@ public void handleMessage(Message msg) {
212215
// if(!checkoutPreviewStarted()){
213216
// return;
214217
// }
218+
checkPermission();
215219
if (startAuto && mStreamer.startStream()) {
216220
mShootingText.setText(STOP_STRING);
217221
mShootingText.postInvalidate();
@@ -282,8 +286,11 @@ public void handleMessage(Message msg) {
282286
builder.setManualFocus(focus_manual);
283287
printDebugInfo = bundle.getBoolean(SHOW_DEBUGINFO, false);
284288

289+
builder.setIsSlightBeauty(false);
285290
}
286291

292+
//可以在这里做权限检查,若没有audio和camera权限,进一步引导用户做权限设置
293+
checkPermission();
287294
mStreamer = new KSYStreamer(this);
288295
mStreamer.setConfig(builder.build());
289296
mStreamer.setDisplayPreview(mCameraPreview);
@@ -297,6 +304,7 @@ public void handleMessage(Message msg) {
297304
if (showWaterMark) {
298305
showWaterMark();
299306
}
307+
300308
if (testSWFilterInterface) {
301309
mStreamer.setOnPreviewFrameListener(new OnPreviewFrameListener() {
302310
@Override
@@ -339,6 +347,17 @@ public void onClick(View view) {
339347
return;
340348
}
341349
lastPipClickTime = curTime;
350+
if (mPicPipMode) {
351+
mStreamer.hidePipBitmap();
352+
if (mPipBitmap != null) {
353+
mPipBitmap.recycle();
354+
mPipBitmap = null;
355+
}
356+
mPicPipMode = false;
357+
mPicturePip.setText(CameraActivity.this.getResources().getString(R.string.picture_pip));
358+
mPicturePip.postInvalidate();
359+
}
360+
342361
if (!mPipMode) {
343362
mKsyMediaPlayer = new KSYMediaPlayer.Builder(CameraActivity.this).build();
344363
mKsyMediaPlayer.setOnBufferingUpdateListener(mOnBufferingUpdateListener);
@@ -381,13 +400,29 @@ public void onClick(View view) {
381400
return;
382401
}
383402
lastPipClickTime = curTime;
403+
if (mPipMode) {
404+
if (mKsyMediaPlayer != null) {
405+
mKsyMediaPlayer.stop();
406+
mKsyMediaPlayer.release();
407+
mStreamer.stopPlayer();
408+
mKsyMediaPlayer = null;
409+
}
410+
mPipMode = false;
411+
mPip.setText(CameraActivity.this.getResources().getString(R.string.pip));
412+
mPip.postInvalidate();
413+
}
384414

385415
if (!mPicPipMode) {
386-
mPipBitmap = BitmapFactory.decodeFile("/sdcard/test.png");
387-
mStreamer.showPipBitmap(mPipBitmap,0.6f, 0.6f, 0.4f, 0.4f);
388-
mPicPipMode =true;
389-
mPicturePip.setText(CameraActivity.this.getResources().getString(R.string.stop_picture_pip));
390-
mPicturePip.postInvalidate();
416+
executorService.submit(new Runnable() {
417+
@Override
418+
public void run() {
419+
mPipBitmap = BitmapFactory.decodeFile("/sdcard/test.png");
420+
mStreamer.showPipBitmap(mPipBitmap, 0.6f, 0.6f, 0.4f, 0.4f);
421+
mPicPipMode = true;
422+
mPicturePip.setText(CameraActivity.this.getResources().getString(R.string.stop_picture_pip));
423+
mPicturePip.postInvalidate();
424+
}
425+
});
391426
} else {
392427
mStreamer.hidePipBitmap();
393428
if (mPipBitmap != null) {
@@ -402,8 +437,6 @@ public void onClick(View view) {
402437
});
403438

404439

405-
406-
407440
mBgm.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
408441
@Override
409442
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
@@ -468,6 +501,7 @@ public void onClick(View arg0) {
468501
Log.e(TAG, "操作太频繁");
469502
}
470503
} else {
504+
checkPermission();
471505
if (mStreamer.startStream()) {
472506
mShootingText.setText(STOP_STRING);
473507
mShootingText.postInvalidate();
@@ -552,7 +586,7 @@ private void hideWaterMark() {
552586
private void showChooseFilter() {
553587
AlertDialog alertDialog;
554588
alertDialog = new AlertDialog.Builder(this).setTitle("请选择美颜滤镜").setSingleChoiceItems(
555-
new String[]{"BEAUTY", "SKIN_WHITEN", "BEAUTY_PLUS", "DENOISE", "DEMOFILTER", "SPLIT_E/P_FILTER", "GROUP_FILTER"}, -1, new DialogInterface.OnClickListener() {
589+
new String[]{"BEAUTY_SOFT", "SKIN_WHITEN", "BEAUTY_ILLUSION", "DENOISE","DEMOFILTER", "SPLIT_E/P_FILTER", "GROUP_FILTER"}, -1, new DialogInterface.OnClickListener() {
556590
@Override
557591
public void onClick(DialogInterface dialog, int which) {
558592
if (which < 4) {
@@ -576,11 +610,12 @@ public void onClick(DialogInterface dialog, int which) {
576610
@Override
577611
public void onResume() {
578612
super.onResume();
613+
//可以在这里做权限检查,若没有audio和camera权限,进一步引导用户做权限设置
614+
checkPermission();
579615
if (mKsyBgmPlayer != null) {
580616
mKsyBgmPlayer.resume();
581617
}
582-
if(mKsyMediaPlayer != null)
583-
{
618+
if (mKsyMediaPlayer != null) {
584619
mKsyMediaPlayer.start();
585620
}
586621
mStreamer.onResume();
@@ -593,8 +628,7 @@ public void onPause() {
593628
if (mKsyBgmPlayer != null) {
594629
mKsyBgmPlayer.pause();
595630
}
596-
if(mKsyMediaPlayer != null)
597-
{
631+
if (mKsyMediaPlayer != null) {
598632
mKsyMediaPlayer.pause();
599633
}
600634
mStreamer.onPause();
@@ -671,7 +705,7 @@ public void onStatus(int what, int arg1, int arg2, String msg) {
671705
.sendToTarget();
672706
break;
673707
case RecorderConstants.KSY_RENDER_EXCEPTION:
674-
mHandler.obtainMessage(what,"renderer exception")
708+
mHandler.obtainMessage(what, "renderer exception")
675709
.sendToTarget();
676710
break;
677711
default:
@@ -851,7 +885,7 @@ public void onClick(View view) {
851885
@Override
852886
public void onBufferingUpdate(IMediaPlayer mp, int percent) {
853887
long duration = mKsyMediaPlayer.getDuration();
854-
long progress = duration * percent/100;
888+
long progress = duration * percent / 100;
855889
}
856890
};
857891

@@ -872,8 +906,7 @@ public void onCompletion(IMediaPlayer mp) {
872906
private IMediaPlayer.OnErrorListener mOnPlayerErrorListener = new IMediaPlayer.OnErrorListener() {
873907
@Override
874908
public boolean onError(IMediaPlayer mp, int what, int extra) {
875-
switch (what)
876-
{
909+
switch (what) {
877910
case KSYMediaPlayer.MEDIA_ERROR_UNKNOWN:
878911
Log.e(TAG, "OnErrorListener, Error Unknown:" + what + ",extra:" + extra);
879912
break;
@@ -888,9 +921,30 @@ public boolean onError(IMediaPlayer mp, int what, int extra) {
888921
public IMediaPlayer.OnInfoListener mOnInfoListener = new IMediaPlayer.OnInfoListener() {
889922
@Override
890923
public boolean onInfo(IMediaPlayer iMediaPlayer, int i, int i1) {
891-
Log.d(TAG, "onInfo, what:"+i+",extra:"+i1);
924+
Log.d(TAG, "onInfo, what:" + i + ",extra:" + i1);
892925
return false;
893926
}
894927
};
895928

929+
private boolean checkPermission() {
930+
try {
931+
int pRecordAudio = PermissionChecker.checkCallingOrSelfPermission(this, "android.permission.RECORD_AUDIO");
932+
int pCamera = PermissionChecker.checkCallingOrSelfPermission(this, "android.permission.CAMERA");
933+
934+
if(pRecordAudio != PackageManager.PERMISSION_GRANTED) {
935+
Log.e(TAG,"do not have AudioRecord permission, please check");
936+
Toast.makeText(this,"do not have AudioRecord permission, please check", Toast.LENGTH_LONG).show();
937+
return false;
938+
}
939+
if(pCamera != PackageManager.PERMISSION_GRANTED) {
940+
Log.e(TAG,"do not have CAMERA permission, please check");
941+
Toast.makeText(this,"do not have CAMERA permission, please check", Toast.LENGTH_LONG).show();
942+
return false;
943+
}
944+
} catch (Exception e) {
945+
e.printStackTrace();
946+
}
947+
return true;
948+
}
949+
896950
}
Binary file not shown.

libs/arm64-v8a/libksystreamer.so

-1.83 MB
Binary file not shown.

libs/armeabi-v7a/libksystreamer.so

-1.17 MB
Binary file not shown.

libs/ksylive3.0.jar

5.25 KB
Binary file not shown.

libs/x86/libksystreamer.so

-1.76 MB
Binary file not shown.

release_note.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,3 +183,13 @@
183183
92. 修复部分手机推流时出现推流画面拉伸的问题
184184
93. 修复若干画中画的bug
185185
94. 修复Android推流端使用540P或者720P软编推流,切换摄像头时,出现画面异常
186+
187+
2016-06-16 3.3.0.0
188+
95. 修复软编下,手机性能不足造成的音视频不同步问题
189+
96. 针对性能差的机型,提供软编下轻度美颜方案
190+
97. 修复画中画的若干bug
191+
98. 提升音频编码的音质
192+
193+
2016-06-24 3.3.0.2
194+
99. 减小so库的体积
195+
100. 修复关闭摄像头权限或录音权限后应用崩溃的问题,并在无权限时上报相应的错误类型

0 commit comments

Comments
 (0)