Android VideoView快照(来自直播)

时间:2014-07-25 11:00:58

标签: java android android-videoview h.264

我正在编写一个应用程序,通过VideoView小部件播放来自视频服务器(h264)的实时视频流。

我需要检索视频的快照并将其另存为位图图像(以jpg或png格式)。

我编写了以下似乎有效的代码(因为它既没有挂起也没有抛出异常),但我得到的只是一个黑色图像:

final VideoView videoView = (VideoView) findViewById(R.id.videoH264);

    new Thread(new Runnable() 
    {
        public void run() 
        {
            videoView.setDrawingCacheEnabled(true);
            videoView.buildDrawingCache();

            Bitmap bmp = videoView.getDrawingCache();

            String path = Environment.getExternalStorageDirectory().toString();
            OutputStream fOut = null;
            File file = new File(path, "snapshot.jpg");

            try 
            {
                fOut = new FileOutputStream(file);

                bmp.compress(Bitmap.CompressFormat.JPEG, 85, fOut);                 

                fOut.flush();       
                fOut.close();
            } 
            catch (IOException e) 
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            try 
            {
                MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());
            } 
            catch (FileNotFoundException e) 
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }).start();

我尝试在活动的onCreate事件中初始化DrawingCache功能,但应用程序保持相同的行为。

0 个答案:

没有答案