取出视频播放某时刻的图片

   /**
     * 截播放视频帧
     * @param videoName   要播放的视频
     * @param currentVideoTime  当前视频播放的时间点(秒)
     * @return
     */
    private Bitmap createVideoPicture(String videoName,String currentVideoTime) {
        Bitmap bitmap = null;
        Bitmap newBitmap = null;
        MediaMetadataRetriever retriever = new MediaMetadataRetriever();
        try {


            if(videoName !=null &&videoName.lastIndexOf("/")>0){
                videoName =videoName.substring(videoName.lastIndexOf("/")+1);
            }
            String filePath=ProwerMediaContant.DIRECTORY_PATH+videoName;
            if(currentVideoTime==null ||"".equals(currentVideoTime)){
                currentVideoTime="0";
            }
            retriever.setDataSource(filePath);
            // 取得视频的长度(单位为毫秒)
            //String timeString = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
            // 取得视频的长度(单位为秒)
            //int seconds = Integer.valueOf(timeString) /1000;
            //Log.v("PowerMediaProject-ScreenshotManager-createVideoBitmap","time = " + seconds);
            double dCurrentTime =Double.parseDouble(currentVideoTime)*1000*1000;
            bitmap = retriever.getFrameAtTime(new Double(dCurrentTime).longValue(),MediaMetadataRetriever.OPTION_CLOSEST_SYNC);


            newBitmap = Bitmap.createBitmap(ProwerMediaContant.BITMAPWIDTH,ProwerMediaContant.BITMAPHEIGHT, Bitmap.Config.ARGB_8888);
            Canvas cv = new Canvas(newBitmap);
            cv.drawBitmap(bitmap, 0, 0, null);//在 0,0坐标开始画入bg
            cv.save(Canvas.ALL_SAVE_FLAG);//保存
            cv.restore();//存储
        } catch (Exception e) {
            Log.e("PowerMediaProject-ScreenshotManager-createVideoPicture","fail to videoScreen"+e.getMessage());
        }
        return newBitmap;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值