我想从实时流式传输网址中捕获图像,但setDataSource(String uri, Map<String, String> headers)
方法仅适用于API 14+。我如何在14 API以下实现这一目标?
这是我的代码:
public static Bitmap getVideoFrame(Context context, Uri uri) {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(uri.toString(),new HashMap<String, String>());
return retriever.getFrameAtTime();
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
Log.d("test","error:"+ex);
} catch (RuntimeException ex) {
ex.printStackTrace();
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
}
}
return null;
}
请帮助我。谢谢你。
答案 0 :(得分:0)
您可以使用FFmpegMediaMetadataRetriever:
public static Bitmap getVideoFrame(Context context, Uri uri) {
FFmpegMediaMetadataRetriever retriever = new FFmpegMediaMetadataRetriever();
try {
retriever.setDataSource(uri.toString());
return retriever.getFrameAtTime();
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
Log.d("test","error:"+ex);
} catch (RuntimeException ex) {
ex.printStackTrace();
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
}
}
return null;
}
截图: