//获取视频指定帧的bitmap
private static Bitmap createVideoThumbnail(String filePath) {
Bitmap bitmap = null;
if(filePath == null || filePath == ""){
bitmap = Bitmap.createBitmap(480, 320, Bitmap.Config.ARGB_8888);
}
else {
android.media.MediaMetadataRetriever retriever = new android.media.MediaMetadataRetriever();
try {
retriever.setDataSource(filePath);
if(position == 0){
bitmap = Bitmap.createBitmap(480, 320, Bitmap.Config.ARGB_8888);
}
else {
bitmap = retriever.getFrameAtTime(position*1000); //position为全局变量,即视频播放到的具体位置,单位为毫秒
}
} catch (IllegalArgumentException ex) {
// Assume this is a corrupt video file
} catch (RuntimeException ex) {
// Assume this is a corrupt video file.
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
// Ignore failures while cleaning up.
}
}
}
return bitmap;
}
//保存到指定文件
private void takeScreenShot(String strFileName){
//从视频指定位置创建位图
Bitmap screenShot = createVideoThumbnail(path);
File file = new File(strFileName);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
if (null != fos)
{
screenShot.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.flush();
fos.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
private static Bitmap createVideoThumbnail(String filePath) {
Bitmap bitmap = null;
if(filePath == null || filePath == ""){
bitmap = Bitmap.createBitmap(480, 320, Bitmap.Config.ARGB_8888);
}
else {
android.media.MediaMetadataRetriever retriever = new android.media.MediaMetadataRetriever();
try {
retriever.setDataSource(filePath);
if(position == 0){
bitmap = Bitmap.createBitmap(480, 320, Bitmap.Config.ARGB_8888);
}
else {
bitmap = retriever.getFrameAtTime(position*1000); //position为全局变量,即视频播放到的具体位置,单位为毫秒
}
} catch (IllegalArgumentException ex) {
// Assume this is a corrupt video file
} catch (RuntimeException ex) {
// Assume this is a corrupt video file.
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
// Ignore failures while cleaning up.
}
}
}
return bitmap;
}
//保存到指定文件
private void takeScreenShot(String strFileName){
//从视频指定位置创建位图
Bitmap screenShot = createVideoThumbnail(path);
File file = new File(strFileName);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
if (null != fos)
{
screenShot.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.flush();
fos.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}