Я борюсь с переносом простого файла JPEG внутри тега ID3v2 из c ++ через сокет TCP в Java (Android).Библиотека "taglib" предлагает извлечь этот файл, и я могу сохранить JPEG в виде нового файла.
Функция отправки выглядит следующим образом
char *parameter_full = new char[f3->picture().size()+2];
sprintf(parameter_full,"%s\n\0",f3->picture().data());
// send
result = send(c,parameter_full,strlen(parameter_full),0);
delete[] parameter_full;
, где
f3-> picture (). Data () возвращает указатель на внутреннюю структуру данных (возвращает символ*) и f3-> picture (). size () возвращает размер массива.
Затем Android получает его с
String imageString = inFromServer.readLine();
byte[] imageBytes = imageString.getBytes();
Bitmap cover = BitmapFactory.decodeByteArray(imageBytes,0,imageBytes.length);
Но каким-то образом decodeByteArray всегда возвращает ноль.Моя идея состоит в том, что Java не получает изображение правильно, потому что imageString состоит только из 4 символов ... в то время как извлеченный файл JPEG имеет размер 12,7 КБ.Но что пошло не так?
Мартин