¡Buscando sugerencias para puntuaciones altas! Me pagaron bien por resolver este problema. Soy un novato y escribo mi propio socket de Android para recibir transmisión de video. ¿Por qué solo se muestra un cuadro?
1. que lo enviaste desde el servidor en qué formato están los datos. Si se trata de un formato de objeto de mapa de bits, se estima que el tamaño de un cuadro no será W * H * 3, y habrá al menos cierta información del encabezado de la imagen. Al igual que un archivo de mapa de bits, no solo almacenará datos de píxeles, sino que también almacenará datos de píxeles. También almacene algunos números de versión, tablas de colores, largo y ancho.
2. El hecho de que el mapa de bits sea nulo no significa que no haya obtenido los datos. Existe una buena posibilidad de que los datos que obtiene no se ajusten al formato del objeto de mapa de bits. Puede volcar los datos recibidos antes de convertirlos a un mapa de bits para ver si coinciden con los datos enviados por el servidor.
3. Combinando 1 y 2, se puede mostrar el primer cuadro porque hay un encabezado de archivo de mapa de bits. Aunque al final no hubo suficientes datos de píxeles, el impacto no fue significativo. La pantalla negra en el segundo cuadro probablemente se debe a que los últimos datos que deberían pertenecer al primer cuadro se colocan al comienzo del segundo cuadro, lo que hace que el encabezado del mapa de bits sea irreconocible y no se pueda analizar. En cuanto a por qué el tercer cuadro es el mismo que el primer cuadro, debe analizar cuidadosamente su programa, incluidos otros códigos en el lado del cliente y del servidor.