我想以編程方式製作我的android屏幕(我在android屏幕上做什麼)的視頻。Android屏幕捕獲或從圖像製作視頻
有沒有關於此的最佳教程或幫助。 我搜查了很多,但我發現的東西......(以編程方式捕獲安卓屏幕圖片)。 好的,如果我在每毫秒後捕捉大量圖像,而不是在android程序化中如何製作大量捕捉圖像的視頻。
我想以編程方式製作我的android屏幕(我在android屏幕上做什麼)的視頻。Android屏幕捕獲或從圖像製作視頻
有沒有關於此的最佳教程或幫助。 我搜查了很多,但我發現的東西......(以編程方式捕獲安卓屏幕圖片)。 好的,如果我在每毫秒後捕捉大量圖像,而不是在android程序化中如何製作大量捕捉圖像的視頻。
您可以使用以下代碼在Android中進行屏幕截圖。
請查看此網址..... http://android-coding.blogspot.in/2011/05/create-custom-dialog-with-dynamic.html
您可以使用以下代碼在Android中進行屏幕截圖。
ImageView v1 = (ImageView)findViewById(R.id.mImage);
v1.setDrawingCacheEnabled(true);
Bitmap bm = v1.getDrawingCache();
對於從圖像創建視頻訪問this鏈接。
只要你有使用JCodec(http://jcodec.org)位圖可以翻轉成視頻。
下面是一個示例圖像序列編碼器:https://github.com/jcodec/jcodec/blob/master/src/main/java/org/jcodec/api/SequenceEncoder.java。您可以通過用位圖替換BufferedImage來爲您的目的修改它。
使用這些輔助方法:
public static Picture fromBitmap(Bitmap src) {
Picture dst = Picture.create((int)src.getWidth(), (int)src.getHeight(), RGB);
fromBitmap(src, dst);
return dst;
}
public static void fromBitmap(Bitmap src, Picture dst) {
int[] dstData = dst.getPlaneData(0);
int[] packed = new int[src.getWidth() * src.getHeight()];
src.getPixels(packed, 0, src.getWidth(), 0, 0, src.getWidth(), src.getHeight());
for (int i = 0, srcOff = 0, dstOff = 0; i < src.getHeight(); i++) {
for (int j = 0; j < src.getWidth(); j++, srcOff++, dstOff += 3) {
int rgb = packed[srcOff];
dstData[dstOff] = (rgb >> 16) & 0xff;
dstData[dstOff + 1] = (rgb >> 8) & 0xff;
dstData[dstOff + 2] = rgb & 0xff;
}
}
}
public static Bitmap toBitmap(Picture src) {
Bitmap dst = Bitmap.create(pic.getWidth(), pic.getHeight(), ARGB_8888);
toBitmap(src, dst);
return dst;
}
public static void toBitmap(Picture src, Bitmap dst) {
int[] srcData = src.getPlaneData(0);
int[] packed = new int[src.getWidth() * src.getHeight()];
for (int i = 0, dstOff = 0, srcOff = 0; i < src.getHeight(); i++) {
for (int j = 0; j < src.getWidth(); j++, dstOff++, srcOff += 3) {
packed[dstOff] = (srcData[srcOff] << 16) | (srcData[srcOff + 1] << 8) | srcData[srcOff + 2];
}
}
dst.setPixels(packed, 0, src.getWidth(), 0, 0, src.getWidth(), src.getHeight());
}
可以如耐心等待JCodec團隊實施全面支持Android,他們就可以根據這個工作:http://jcodec.org/news/no_deps.html
這段代碼應該運行得非常慢嗎? fromBitmap()花費大約30-40秒來執行480x800圖像。 JCodec的encodeNativeFrame()花費的時間更長。有什麼方法可以重新連接JCodec的內部使用位圖而不是圖片? – BVB 2013-06-13 22:18:18
歡迎來到堆棧溢出!雖然這可能會在理論上回答這個問題,[這將是更可取的](http://meta.stackexchange.com/q/8259)在這裏包括答案的基本部分,並提供參考鏈接。 – 2012-03-20 12:50:12