Skip to content

record_file_cover

zanxiaofei edited this page Oct 11, 2017 · 2 revisions

录制文件封面

文件录制的过程中,可以通过KSYRecordKit的requestScreenShot接口来获取任意录制的视频截图以作为文件的封面使用

接口使用说明

  1. 通过接口requestScreenShot触发视频截图
  2. 截图接口为异步,通过GLRender.ScreenShotListener来拿到截取后的图片
 /**
     * 根据设置的录制分辨率来截取图片
     * @param screenShotListener 通过listener返回截取好的图片
     */
    public void requestScreenShot(GLRender.ScreenShotListener screenShotListener)

    /**
     * 根据缩放比例来截取图片
     *
     * @param scaleFactor        图片的缩放比例:0~1.0.
     * @param screenShotListener 通过listener返回截取好的图片
     */
    public void requestScreenShot(float scaleFactor, GLRender.ScreenShotListener screenShotListener)
    //截图回调
    public interface ScreenShotListener {
        void onBitmapAvailable(Bitmap bitmap);
    }

示例代码

     mRecordKit.requestScreenShot(new GLRender.ScreenShotListener() {
            @Override
            public void onBitmapAvailable(Bitmap bitmap) {
                BufferedOutputStream bos = null;
                try {
                    Date date = new Date() ;
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss") ;
                    final String filename = "/sdcard/screenshot"+ dateFormat.format(date) + ".jpg";

                    bos = new BufferedOutputStream(new FileOutputStream(filename));
                    if (bitmap != null) {
                        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bos);
                        runOnUiThread(new Runnable() {
                            public void run() {
                                Toast.makeText(CameraActivity.this, "保存截图到 "+ filename,
                                        Toast.LENGTH_SHORT).show();
                            }
                        });
                    }
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } finally {
                    if (bos != null) try {
                        bos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
Clone this wiki locally