D / skia: png ошибка IDAT: ошибка кодека CRC-> getAndroidPixels () - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь сделать простое приложение для потокового видео.Изображение захватывается на сервере и сохраняется в формате PNG, которое преобразуется в байты и отправляется через Интернет (или локальную сеть) в приложение Android, которое сохраняет байты в формате PNG и отображается на дисплее.Я все время получаю сообщение об ошибке: «1001 *

D/skia: ------ png error IDAT: CRC error
D/skia: --- codec->getAndroidPixels() failed.

Я не могу найти нигде, что дает информацию об ошибке.Есть идеи?Помощь очень ценится.

public class MainActivity extends AppCompatActivity {

public static volatile ImageView mainView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
}

public void startStream(View v){
    mainView = findViewById(R.id.imageView);
    Thread stream = new Thread(new streamThread(this));
    stream.start();
}
}

class streamThread implements Runnable{
Activity act;

public streamThread(Activity activity){
    act = activity;
}
@Override
public void run() {
    try {
        Socket sock = new Socket("10.1.10.107", 6879);

        InputStream sockIn = sock.getInputStream();

        TimeUnit.SECONDS.sleep(1);
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(act.getFilesDir() +  "/tempImg.png"));


        while(true){
            byte[] rData = new byte[2332800];

            sockIn.read(rData);

            bos.write(rData);

            act.runOnUiThread(new Runnable() //run on ui thread
            {
                public void run()
                {

                    MainActivity.mainView.setImageBitmap(BitmapFactory.decodeFile(act.getFilesDir() + "/tempImg.png"));

                }
            });

        }
    }catch(Exception e){
        Log.e("exception", e.getMessage());
    }
}
}
...