|
3 | 3 | import static com.tencent.iotvideo.link.util.UtilsKt.getBitRateIntervalByPixel; |
4 | 4 |
|
5 | 5 | import android.app.Activity; |
| 6 | +import android.graphics.Rect; |
| 7 | +import android.graphics.YuvImage; |
6 | 8 | import android.hardware.Camera; |
7 | 9 | import android.media.AudioFormat; |
8 | 10 | import android.media.MediaCodecInfo; |
|
26 | 28 | import com.tencent.iotvideo.link.util.QualitySetting; |
27 | 29 | import com.tencent.iotvideo.link.util.UtilsKt; |
28 | 30 |
|
| 31 | +import java.io.ByteArrayOutputStream; |
29 | 32 | import java.io.File; |
30 | 33 | import java.io.FileOutputStream; |
31 | 34 | import java.io.IOException; |
@@ -277,10 +280,27 @@ public void onVideoEncoded(byte[] datas, long pts, long seq, boolean isKeyFrame) |
277 | 280 | } |
278 | 281 | } |
279 | 282 |
|
| 283 | + ByteArrayOutputStream out = new ByteArrayOutputStream(); |
| 284 | + |
280 | 285 | @Override |
281 | 286 | public void onPreviewFrame(byte[] data, Camera camera) { |
282 | 287 | if (!mIsRecording || mVideoEncoder == null) return; |
283 | 288 | mVideoEncoder.encoderH264(data, cameraId == Camera.CameraInfo.CAMERA_FACING_FRONT); |
| 289 | + |
| 290 | + /** |
| 291 | + Camera.Parameters parameters = camera.getParameters(); |
| 292 | + Camera.Size size = parameters.getPreviewSize(); |
| 293 | +
|
| 294 | + // 转换YUV数据为JPEG |
| 295 | + YuvImage image = new YuvImage(data, parameters.getPreviewFormat(), size.width, size.height, null); |
| 296 | + out.reset(); |
| 297 | + if (image.compressToJpeg(new Rect(0, 0, size.width, size.height), 100, out)){ |
| 298 | + // 得到JPEG数据 |
| 299 | + byte[] jpegData = out.toByteArray(); |
| 300 | + // 发送或处理 JPEG 数据,例如通过网络发送 |
| 301 | +// sendMjpegFrame(jpegData); |
| 302 | + } |
| 303 | + */ |
284 | 304 | } |
285 | 305 |
|
286 | 306 | private void startBitRateAdapter(int visitor, int channel, int res_type) { |
|
0 commit comments