相关疑难解决方法(0)

自定义byteArray数据到WebRTC videoTrack

我需要使用WebRTC for android将特定的裁剪(面部)视频发送到videoChannel.我能够操作CameraRession类WebRTC来裁剪面部.现在我将它设置为ImageView. listenForBytebufferFrames()Camera1Session.java

private void listenForBytebufferFrames() {
    this.camera.setPreviewCallbackWithBuffer(new PreviewCallback() {
        public void onPreviewFrame(byte[] data, Camera callbackCamera) {
            Camera1Session.this.checkIsOnCameraThread();
            if(callbackCamera != Camera1Session.this.camera) {
                Logging.e("Camera1Session", "Callback from a different camera. This should never happen.");
            } else if(Camera1Session.this.state != Camera1Session.SessionState.RUNNING) {
                Logging.d("Camera1Session", "Bytebuffer frame captured but camera is no longer running.");
            } else {
                mFrameProcessor.setNextFrame(data, callbackCamera);
                long captureTimeNs = TimeUnit.MILLISECONDS.toNanos(SystemClock.elapsedRealtime());
                if(!Camera1Session.this.firstFrameReported) {
                    int startTimeMs = (int)TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - Camera1Session.this.constructionTimeNs);
                    Camera1Session.camera1StartTimeMsHistogram.addSample(startTimeMs);
                    Camera1Session.this.firstFrameReported = true;
                }

                ByteBuffer byteBuffer1 = ByteBuffer.wrap(data); …
Run Code Online (Sandbox Code Playgroud)

android android-camera webrtc apprtcdemo android-vision

11
推荐指数
1
解决办法
941
查看次数

将NV21字节数组转换为位图可读格式

嘿我正在创建小型相机应用程序我已经实现了所有的东西,但我有一个问题,即将NV21字节数组转换为jpeg格式
我发现很多方法,但所有这些甚至不工作或在某些设备上工作
首先 我尝试了这个片段和它适用于Xperia z2 5.2但适用于galaxy s4 4.4.4

bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
Run Code Online (Sandbox Code Playgroud)

这种方式也可以在同一台设备上运行而另一台则失败

 int pich = camera.getParameters().getPreviewSize().height;
        int picw = camera.getParameters().getPreviewSize().width;
        int[] pix = new int[picw * pich];
        bitmap.getPixels(pix, 0, picw, 0, 0, picw, pich);
                    //  int R, G, B, Y;
                    for (int y = 0; y < pich; y++) {
                        for (int x = 0; x < picw; x++) {
                            int index = y * picw + x;
                          int R = (pix[index] >> 16) & 0xff; 
                         int G …
Run Code Online (Sandbox Code Playgroud)

android bitmap yuv android-camera

6
推荐指数
2
解决办法
1万
查看次数