by Anonymous » 25 Feb 2025, 10:21
public void displayProcess (String path) throws FileNotFoundException {
rawVideoFile = new FileInputStream(path);
yuvBuffer = new byte[height * width * 3 / 2];
new Thread(this::playYUVVideo).start();
}
public void playYUVVideo() {
try {
while (rawVideoFile.read(yuvBuffer) == yuvBuffer.length){
//convert YUV to bitmap
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
YuvImage yuvImage = new YuvImage(yuvBuffer, ImageFormat.YCBCR_P010, width, height,null);
yuvImage.compressToJpeg(new Rect(0, 0, width, height), 50, outputStream);
byte[] imageBytes = outputStream.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
runOnUiThread(() -> mImageView.setImageBitmap(bitmap));
Thread.sleep(33);
}
}catch (Exception e) {
e.printStackTrace();
}
}
< /code>
Das Protokoll sagte, dass:
java.lang.ILLEGALARGumentException: nur ImageFormat.nv21 und ImageFormat.yuy2 unterstützt werden. Yuvimage.java:220)
at com.example.hlgplus.mainActivity.playyuvvideo (MainActivity.java:101)
at com.example.hlgplus.mainActivity $$ externalsynthethethethethetheta3.run (D8 $$ Syntheticclass: 0)
at java.lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang $ $$). Thread.run (Thread.java:1012)
Ich möchte P010 direkt anmelden, ohne < /p zu konvertieren>
public void displayProcess (String path) throws FileNotFoundException {
rawVideoFile = new FileInputStream(path);
yuvBuffer = new byte[height * width * 3 / 2];
new Thread(this::playYUVVideo).start();
}
public void playYUVVideo() {
try {
while (rawVideoFile.read(yuvBuffer) == yuvBuffer.length){
//convert YUV to bitmap
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
YuvImage yuvImage = new YuvImage(yuvBuffer, ImageFormat.YCBCR_P010, width, height,null);
yuvImage.compressToJpeg(new Rect(0, 0, width, height), 50, outputStream);
byte[] imageBytes = outputStream.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
runOnUiThread(() -> mImageView.setImageBitmap(bitmap));
Thread.sleep(33);
}
}catch (Exception e) {
e.printStackTrace();
}
}
< /code>
Das Protokoll sagte, dass:
java.lang.ILLEGALARGumentException: nur ImageFormat.nv21 und ImageFormat.yuy2 unterstützt werden. Yuvimage.java:220)
at com.example.hlgplus.mainActivity.playyuvvideo (MainActivity.java:101)
at com.example.hlgplus.mainActivity $$ externalsynthethethethethetheta3.run (D8 $$ Syntheticclass: 0)
at java.lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang .lang $ $$). Thread.run (Thread.java:1012)
Ich möchte P010 direkt anmelden, ohne < /p zu konvertieren>