2016-06-08 13 views
0

Ich bekomme schwarzen Bildschirm nicht den Videoinhalt bitte helfen Sie mir.Wie kann man einen Schnappschuss der Videowiedergabe machen, während das Video auf Android läuft?

Mein Code:

private Bitmap takeScreenshot() { 
    relate.setDrawingCacheEnabled(true); 
    relate.buildDrawingCache(); 
    return relate.getDrawingCache(); 
} 

private void saveBitmap(Bitmap bitmap) { 
    // File imagePath = new File(Environment.getExternalStorageDirectory()  + "/screenshot.png"); 

    FileOutputStream fos; 
    // String path ="data/data/com.focusmedica.eyeactivity/files/Images" + filename; 

    try { 
     fos =new FileOutputStream(path); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
     fos.flush(); 
     fos.close(); 
     sentmail(path); 
    } catch (FileNotFoundException e) { 
     Log.e("GREC", e.getMessage(), e); 
    } catch (IOException e) { 
     Log.e("GREC", e.getMessage(), e); 
    } 
} 

ich bin mit canvas etwas auf videoview Zeichnung .und ich bekomme nur schwarzen Bildschirm. mein videoview ist innen in relative layout. Vielen Dank im Voraus .....

+0

verwenden Sie Oberflächenansicht oder Texturansicht? – GvSharma

+0

nein, ich benutze nicht beide, eigentlich bin ich neu in android so weiß ich nicht diese dinge ... @ gvsharma –

Antwort

1

Von der android hier können Sie Schnappschuss oder Frame der Videoansicht erhalten.

Sie können diesen Code versuchen, um den Videobildrahmen zu erhalten.

public static Bitmap createVideoThumbnail(Context context, Uri uri, int i) 
    { 
    MediaMetadataRetriever mediametadataretriever = new MediaMetadataRetriever(); 

try { 
    mediametadataretriever.setDataSource(context, uri); 
    Bitmap bitmap = mediametadataretriever.getFrameAtTime(-1L); 
    if(null != bitmap) 
    { 
     int j = getThumbnailSize(context, i); 
     return ThumbnailUtils.extractThumbnail(bitmap, j, j, 2); 
    } 
    return bitmap; 
} catch (Throwable t) { 
    // TODO log 
    return null; 
} finally { 
    try 
    { 
     mediametadataretriever.release(); 
    } 
    catch(RuntimeException e) { } 
} 

}

Sie Verwendung dieses Verfahrens nach Ihrem Bedarf machen.

+0

Dank bro, diese Methode mir sehr helfen .. @ gvsharma –

+0

können Sie dies als akzeptiert – GvSharma

Verwandte Themen