2013-06-15 4 views
0

재생 비디오로 SurfaceView를 사용하고 있는데 실행중인 비디오에서 이미지를 가져오고 싶습니다. getDrawingCache()로 시도했지만 빈 이미지 나 검정색 화면이 표시되지만 이미지를 그릴 때 그다지 해달라고하지 않는 다른 레이아웃은 다음과 같습니다. 그래서 누구나이 문제를 해결할 수 있습니다. 비디오 또는 surfaceView에서 비트 맵 이미지를 얻는 방법. 미리 감사드립니다. 내 질문에 답하십시오. 이 코드를 사용했지만 결과를 얻지 못했습니다.비디오에서 비트 맵 이미지를 캡처하는 방법

mVideo.setDrawingCacheEnabled (true);

mVideo.buildDrawingCache(); 

    Bitmap b = mVideo.getDrawingCache(); 

답변

0

비디오 내용이 일반보기 레이어에 "노출"되어 있지 않기 때문에이 기능이 작동하지 않습니다.

API 레벨> = 10을 사용하는 경우 MediaMetadataRetrievergetFrameAtTime을 사용할 수 있습니다. 그 내용은 here입니다.

하드웨어가 상당히 다르므로 정확한 프레임을 반환하지 않을 수도 있습니다.

가장 확실한 방법은 직접 FFMPEG와 같은 것을 사용하여 스트림에 직접 액세스하는 것입니다.

+0

안녕하세요 켄 울프는 FFMPFG에 대한 이해를 돕기 위해 FFMPEG를 통해 비디오에서 사진을 찍는 방법을 알고 있습니다. 나는 인터넷을 통해 이미 검색했지만 도움이되는 사이트는 찾지 못했습니다. – Himanshu

+0

FFMPG에 대한 전문가가 아니므로 걱정됩니다. 나는 그것이 가능하다는 것을 명확히 알고 있지만 아주 상세한 해결책이 될 것입니다. 어쩌면 다른 질문이 이처럼 도움이 될 수 있습니다 (http://stackoverflow.com/questions/4725773/ffmpeg-on-android). –

관련 문제