Skip to content

Commit 56c69b4

Browse files
committed
support snapshot
1 parent 8913b85 commit 56c69b4

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

android/ijkplayer/ijkplayer-example/src/main/java/tv/danmaku/ijk/media/example/application/Settings.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import android.preference.PreferenceManager;
2323

2424
import tv.danmaku.ijk.media.example.R;
25+
import tv.danmaku.ijk.media.player.IjkMediaPlayer;
2526

2627
public class Settings {
2728
private Context mAppContext;
@@ -111,4 +112,12 @@ public void setLastDirectory(String path) {
111112
String key = mAppContext.getString(R.string.pref_key_last_directory);
112113
mSharedPreferences.edit().putString(key, path).apply();
113114
}
115+
116+
public void setLogLevel(int level){
117+
mSharedPreferences.edit().putInt("pref.log_level", level).apply();
118+
}
119+
120+
public int getLogLevel(){
121+
return mSharedPreferences.getInt("pref.log_level", IjkMediaPlayer.IJK_LOG_WARN);
122+
}
114123
}

android/ijkplayer/ijkplayer-example/src/main/java/tv/danmaku/ijk/media/example/widget/media/IjkVideoView.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,21 @@
2121
import android.content.Context;
2222
import android.content.DialogInterface;
2323
import android.content.res.Resources;
24+
import android.graphics.Bitmap;
2425
import android.media.AudioManager;
2526
import android.media.MediaPlayer;
2627
import android.net.Uri;
2728
import android.os.Build;
2829
import android.support.annotation.NonNull;
30+
import android.support.annotation.Nullable;
2931
import android.support.v7.app.AlertDialog;
3032
import android.text.TextUtils;
3133
import android.util.AttributeSet;
3234
import android.util.Log;
3335
import android.view.Gravity;
3436
import android.view.KeyEvent;
3537
import android.view.MotionEvent;
38+
import android.view.TextureView;
3639
import android.view.View;
3740
import android.widget.FrameLayout;
3841
import android.widget.MediaController;
@@ -1037,7 +1040,7 @@ public IMediaPlayer createPlayer(int playerType) {
10371040
IjkMediaPlayer ijkMediaPlayer = null;
10381041
if (mUri != null) {
10391042
ijkMediaPlayer = new IjkMediaPlayer();
1040-
ijkMediaPlayer.native_setLogLevel(IjkMediaPlayer.IJK_LOG_DEBUG);
1043+
ijkMediaPlayer.native_setLogLevel(mSettings.getLogLevel());
10411044

10421045
if (mSettings.getUsingMediaCodec()) {
10431046
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1);
@@ -1277,4 +1280,18 @@ private void setupFrameAvailableListener() {
12771280
Log.w(TAG_TG, "mMediaPlayer isn't IjkMediaPlayer, nonsupport setOnFrameAvailableListener");
12781281
}
12791282
}
1283+
1284+
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
1285+
public void snapshot(OnSnapshotResultCallback callback) {
1286+
if (mRenderView != null && mRenderView.getView() instanceof TextureView) {
1287+
TextureView view = (TextureView) mRenderView.getView();
1288+
callback.onSnapshotResult(view.getBitmap());
1289+
} else {
1290+
callback.onSnapshotResult(null);
1291+
}
1292+
}
1293+
1294+
public interface OnSnapshotResultCallback {
1295+
void onSnapshotResult(@Nullable Bitmap bitmap);
1296+
}
12801297
}

android/ijkplayer/tools/gradle-publish-local.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apply plugin: 'com.github.dcendents.android-maven'
22

33
group = 'cn.transcodegroup.ijkplayer'
4-
version = "$VERSION_NAME.10"
4+
version = "$VERSION_NAME.11"
55

66
task androidJavadocs(type: Javadoc) {
77
failOnError false

0 commit comments

Comments
 (0)