android read video OutOfMemoryError - android

I try to read a video file in Xamarin android in order to convert it to string64.
I have success with very small files (3 secondes), but if the file is bigger (1 minute) i have an OutOfMemoryError.
I have try to add android:largeHeap="true" android:hardwareAccelerated="false" in the manifest file and modify my code to read the video file but still the issue.
Failed to allocate a 134217744 byte allocation with 25165824 free bytes and 126MB until OOM, max allowed footprint 94159504, growth limit 201326592.
What i have try:
byte[] bytes = await System.IO.File.ReadAllBytesAsync(file.AbsolutePath);
string encoded = Base64.EncodeToString(bytes, 0);
return encoded;
using (var stream = new FileStream(file.AbsolutePath, FileMode.Open, FileAccess.Read))
{
//var b = ReadToEnd(stream);
//encoded = Base64.EncodeToString(b, 0);
//return encoded;
byte[] bytes;
using (var memoryStream = new MemoryStream())
{
stream.CopyTo(memoryStream);
bytes = memoryStream.ToArray();
}
string base64 = Convert.ToBase64String(bytes);
return base64;
}
FileInputStream fis = new FileInputStream(file.AbsolutePath);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
for (int readNum; (readNum = fis.Read(b)) != -1;)
{
bos.Write(b, 0, readNum);
}
byte[] bytes = bos.ToByteArray();
string encoded = Base64.EncodeToString(bytes, 0);
return encoded;
Have you got an idea to fix this or split video file without load it entirely?
Thanks

Do you really have to load it in memory first? Play it directly from the video file path

Related

I want to convert a bitmap image to byte array format in android. is it possible?

I want to convert and Image to Byte. The exact format that i want is shared below.
public static byte[] ImageByte = new byte[] { (byte)0x1b,(byte)0x42,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x33
,(byte)0x07,(byte)0x01,(byte)0x00,(byte)0x34,(byte)0x47,(byte)0x00,(byte)0x32,(byte)0x01,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0x00,(byte)0x34,(byte)0x47,(byte)0x00,(byte)0x32,(byte)0x07,(byte)0x01,(byte)0xf0,(byte)0x01
,(byte)0x30,(byte)0x01,(byte)0x10,(byte)0x01,(byte)0x00,(byte)0x32,(byte)0x47,(byte)0x00,(byte)0x32,(byte)0x3f,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x38,(byte)0x01,(byte)0x1e,(byte)0x01,(byte)0x00,(byte)0x32,(byte)0x47
,(byte)0x00,(byte)0x32,(byte)0x7e,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x1c,(byte)0x01,(byte)0x0f,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x32,(byte)0xf8,(byte)0x01,(byte)0x00
,(byte)0x01,(byte)0x1e,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x03,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x06,(byte)0x01,(byte)0x7e,(byte)0x01
,(byte)0x03,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x07,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0xf0
,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x0f,(byte)0x01,(byte)0xe7,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x31
,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x1f,(byte)0x01,(byte)0xcf,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31
,(byte)0x3f,(byte)0x01,(byte)0xff,(byte)0x02,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x3f,(byte)0x01,(byte)0xff,(byte)0x02,(byte)0xf0
,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x7f,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x7f,(byte)0x01,(byte)0xff,(byte)0x02,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xff,(byte)0x01
,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0xff,(byte)0x03,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47
,(byte)0x00,(byte)0x30,(byte)0x01,(byte)0x01,(byte)0xff,(byte)0x02,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x02,(byte)0xff,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x01
,(byte)0x01,(byte)0xff,(byte)0x02,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x02,(byte)0xff,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x03,(byte)0x01,(byte)0xff,(byte)0x02
,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x03,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc
,(byte)0x01,(byte)0x00,(byte)0x02,(byte)0x03,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x07,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xf0,(byte)0x01
,(byte)0x00,(byte)0x02,(byte)0x03,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x07,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00
,(byte)0x02,(byte)0x07,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x07,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x02
,(byte)0x0f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0x00,(byte)0x03,(byte)0x1f,(byte)0x01,(byte)0xff
,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0f,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0x00,(byte)0x03,(byte)0x3f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xf8,(byte)0x01
,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0f,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x03,(byte)0x3e,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47
,(byte)0x00,(byte)0x30,(byte)0x0f,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x03,(byte)0xf8,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0f
,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x02,(byte)0x03,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0f,(byte)0x01
,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x02,(byte)0x0f,(byte)0x01,(byte)0xc1,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x1f,(byte)0x01,(byte)0xc0
,(byte)0x01,(byte)0x00,(byte)0x02,(byte)0x3f,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x1f,(byte)0x01,(byte)0xc0,(byte)0x01
,(byte)0x00,(byte)0x01,(byte)0x02,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x1f,(byte)0x01,(byte)0x80
,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x1f,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0f,(byte)0x01
,(byte)0x00,(byte)0x02,(byte)0x3f,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x0f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x1f,(byte)0x01,(byte)0x00
,(byte)0x02,(byte)0xfe,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x1f,(byte)0x01,(byte)0xf7,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0f,(byte)0x01,(byte)0x00,(byte)0x01
,(byte)0x0f,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x7f,(byte)0x01,(byte)0xf3,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0e,(byte)0x01,(byte)0x00
,(byte)0x01,(byte)0x1f,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xe3,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0e,(byte)0x01
,(byte)0x00,(byte)0x01,(byte)0x3c,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xc3,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30,(byte)0x0c
,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0x83,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x30
,(byte)0x0c,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x1f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0x83,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00
,(byte)0x30,(byte)0x0c,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0x00,(byte)0x02,(byte)0x3f,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31
,(byte)0x0e,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x1c
,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x1f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x1c,(byte)0x01
,(byte)0x00,(byte)0x01,(byte)0x3f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xe6,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x18,(byte)0x01,(byte)0x01
,(byte)0x01,(byte)0xff,(byte)0x02,(byte)0x8e,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x18,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0xff,(byte)0x01
,(byte)0xfc,(byte)0x01,(byte)0x0e,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x30,(byte)0x01,(byte)0x0f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xe0
,(byte)0x01,(byte)0x1e,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x30,(byte)0x01,(byte)0x3f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0x00,(byte)0x01
,(byte)0x3c,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x30,(byte)0x01,(byte)0x7f,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x7c
,(byte)0x01,(byte)0x0f,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x30,(byte)0x01,(byte)0x7f,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xf8,(byte)0x01
,(byte)0x0f,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x30,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x30,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x1f
,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x38,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x0f,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x1e,(byte)0x01,(byte)0x00,(byte)0x31
,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x38,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x3c,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31
,(byte)0x1c,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x78,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x0e,(byte)0x01,(byte)0xe0
,(byte)0x01,(byte)0x0f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x07,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x0f,(byte)0x01
,(byte)0xff,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x03,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x0f,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0x03
,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00,(byte)0x31,(byte)0x47,(byte)0x00,(byte)0x31,(byte)0x01,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x0f,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0x00,(byte)0x32
,(byte)0x47,(byte)0x00,(byte)0x32,(byte)0x7c,(byte)0x01,(byte)0x00,(byte)0x35,(byte)0x47,(byte)0x00,(byte)0x32,(byte)0x1c,(byte)0x01,(byte)0x00,(byte)0x35,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68
,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x33,(byte)0xff,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00,(byte)0x33,(byte)0x47,(byte)0x00,(byte)0x33,(byte)0x7f,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x00
,(byte)0x33,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x38,(byte)0x0e,(byte)0x01,(byte)0x00,(byte)0x2f,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x0f,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x0a
,(byte)0x7f,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00,(byte)0x2e,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x06,(byte)0x01,(byte)0xe1,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0x84,(byte)0x01,(byte)0x06
,(byte)0x01,(byte)0x81,(byte)0x01,(byte)0x84,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x1c,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0xf0
,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x06,(byte)0x01,(byte)0x63,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x1f,(byte)0x01,(byte)0xe7,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0xf1,(byte)0x01
,(byte)0xe7,(byte)0x01,(byte)0xf3,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x7e,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0xc1,(byte)0x02,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00
,(byte)0x2c,(byte)0x06,(byte)0x01,(byte)0x61,(byte)0x01,(byte)0xdc,(byte)0x01,(byte)0x38,(byte)0x01,(byte)0x74,(byte)0x01,(byte)0x66,(byte)0x01,(byte)0x60,(byte)0x01,(byte)0xe3,(byte)0x01,(byte)0x11,(byte)0x01,(byte)0x9c
,(byte)0x01,(byte)0x66,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0xc1,(byte)0x01,(byte)0x98,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x06,(byte)0x01
,(byte)0x61,(byte)0x01,(byte)0xcc,(byte)0x01,(byte)0x70,(byte)0x01,(byte)0x38,(byte)0x01,(byte)0x60,(byte)0x02,(byte)0xe3,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0x8c,(byte)0x01,(byte)0x60,(byte)0x01,(byte)0x03,(byte)0x01
,(byte)0x80,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0xc1,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x07,(byte)0x01,(byte)0xe1,(byte)0x01,(byte)0xcc,(byte)0x01,(byte)0x60
,(byte)0x01,(byte)0x38,(byte)0x01,(byte)0x60,(byte)0x02,(byte)0xe3,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0x8c,(byte)0x01,(byte)0x70,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0xe1
,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x07,(byte)0x01,(byte)0xf1,(byte)0x01,(byte)0xcc,(byte)0x01,(byte)0x60,(byte)0x01,(byte)0x38,(byte)0x01,(byte)0x60,(byte)0x01
,(byte)0x7f,(byte)0x01,(byte)0xe3,(byte)0x01,(byte)0xf1,(byte)0x01,(byte)0x8c,(byte)0x01,(byte)0x7c,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0x83,(byte)0x01,(byte)0xe3,(byte)0x01,(byte)0x61,(byte)0x01,(byte)0xf0,(byte)0x01
,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x06,(byte)0x01,(byte)0x39,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x60,(byte)0x01,(byte)0x38,(byte)0x01,(byte)0x60,(byte)0x02,(byte)0xe3,(byte)0x01,(byte)0xf1
,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x3e,(byte)0x01,(byte)0x03,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0xc7,(byte)0x01,(byte)0x70,(byte)0x01,(byte)0xf8,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c
,(byte)0x06,(byte)0x01,(byte)0x39,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x60,(byte)0x01,(byte)0x38,(byte)0x01,(byte)0x60,(byte)0x02,(byte)0xe3,(byte)0x01,(byte)0x11,(byte)0x01,(byte)0xfc,(byte)0x01,(byte)0x0e,(byte)0x01
,(byte)0x01,(byte)0x01,(byte)0x80,(byte)0x01,(byte)0xc7,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x38,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x06,(byte)0x01,(byte)0x39,(byte)0x01,(byte)0xdc
,(byte)0x01,(byte)0x70,(byte)0x01,(byte)0x38,(byte)0x01,(byte)0x60,(byte)0x02,(byte)0xe3,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0x9c,(byte)0x01,(byte)0x06,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0xc6
,(byte)0x01,(byte)0x30,(byte)0x01,(byte)0x18,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x06,(byte)0x01,(byte)0x39,(byte)0x01,(byte)0xce,(byte)0x01,(byte)0x78,(byte)0x01,(byte)0x70,(byte)0x01
,(byte)0x60,(byte)0x02,(byte)0xe3,(byte)0x01,(byte)0x19,(byte)0x01,(byte)0x8e,(byte)0x01,(byte)0xc6,(byte)0x01,(byte)0x01,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0xce,(byte)0x01,(byte)0x39,(byte)0x01,(byte)0x18,(byte)0x01
,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x0f,(byte)0x01,(byte)0x71,(byte)0x01,(byte)0xc7,(byte)0x01,(byte)0x3c,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x60,(byte)0x02,(byte)0xe3,(byte)0x01,(byte)0xf9
,(byte)0x01,(byte)0x87,(byte)0x01,(byte)0xee,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0xf9,(byte)0x01,(byte)0xcc,(byte)0x01,(byte)0x1d,(byte)0x01,(byte)0xb8,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c
,(byte)0x0f,(byte)0x01,(byte)0xe1,(byte)0x01,(byte)0xc3,(byte)0x01,(byte)0xdf,(byte)0x01,(byte)0xc0,(byte)0x01,(byte)0xf0,(byte)0x02,(byte)0xe7,(byte)0x01,(byte)0xf1,(byte)0x01,(byte)0xc3,(byte)0x01,(byte)0xfc,(byte)0x01
,(byte)0x00,(byte)0x01,(byte)0x3f,(byte)0x01,(byte)0xdc,(byte)0x01,(byte)0x1d,(byte)0x01,(byte)0xf0,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00
,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x06,(byte)0x01,(byte)0xc4,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0x4e,(byte)0x01,(byte)0x76,(byte)0x01,(byte)0x60,(byte)0x01,(byte)0xf9
,(byte)0x01,(byte)0x1c,(byte)0x01,(byte)0xc4,(byte)0x01,(byte)0x9c,(byte)0x01,(byte)0xcf,(byte)0x01,(byte)0x0f,(byte)0x01,(byte)0x64,(byte)0x01,(byte)0xe6,(byte)0x01,(byte)0x1c,(byte)0x01,(byte)0x90,(byte)0x01,(byte)0x00
,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x07,(byte)0x01,(byte)0x46,(byte)0x01,(byte)0xff,(byte)0x01,(byte)0x4e,(byte)0x01,(byte)0x7a,(byte)0x01,(byte)0xe1,(byte)0x01,(byte)0xcb,(byte)0x01,(byte)0x1c,(byte)0x01
,(byte)0xc6,(byte)0x01,(byte)0x9d,(byte)0x01,(byte)0xef,(byte)0x01,(byte)0x04,(byte)0x01,(byte)0x66,(byte)0x01,(byte)0xef,(byte)0x01,(byte)0x3f,(byte)0x01,(byte)0xb0,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00
,(byte)0x2c,(byte)0x07,(byte)0x01,(byte)0xce,(byte)0x01,(byte)0x62,(byte)0x01,(byte)0x4a,(byte)0x01,(byte)0x70,(byte)0x01,(byte)0xc1,(byte)0x01,(byte)0x83,(byte)0x01,(byte)0x1c,(byte)0x01,(byte)0xe7,(byte)0x01,(byte)0x9d
,(byte)0x01,(byte)0xc6,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0x7e,(byte)0x01,(byte)0xe7,(byte)0x01,(byte)0x70,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x05,(byte)0x01
,(byte)0xcf,(byte)0x01,(byte)0x62,(byte)0x01,(byte)0x4e,(byte)0x01,(byte)0x70,(byte)0x01,(byte)0xe1,(byte)0x01,(byte)0x83,(byte)0x01,(byte)0x1d,(byte)0x01,(byte)0xe7,(byte)0x01,(byte)0x9c,(byte)0x01,(byte)0xe6,(byte)0x01
,(byte)0x05,(byte)0x01,(byte)0x7c,(byte)0x01,(byte)0xe7,(byte)0x01,(byte)0x66,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x05,(byte)0x01,(byte)0xcf,(byte)0x01,(byte)0x63
,(byte)0x01,(byte)0xcf,(byte)0x01,(byte)0x70,(byte)0x01,(byte)0xe1,(byte)0x01,(byte)0xfb,(byte)0x01,(byte)0xdd,(byte)0x01,(byte)0xf5,(byte)0x01,(byte)0x9d,(byte)0x01,(byte)0xe6,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0x6e
,(byte)0x01,(byte)0xe7,(byte)0x01,(byte)0xfe,(byte)0x01,(byte)0x60,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x2c,(byte)0x0e,(byte)0x01,(byte)0xdb,(byte)0x01,(byte)0x63,(byte)0x01,(byte)0xcb,(byte)0x01
,(byte)0xf8,(byte)0x01,(byte)0xe0,(byte)0x01,(byte)0x7b,(byte)0x01,(byte)0xdd,(byte)0x01,(byte)0x3c,(byte)0x01,(byte)0x9d,(byte)0x01,(byte)0xe6,(byte)0x01,(byte)0x07,(byte)0x01,(byte)0x64,(byte)0x01,(byte)0xed,(byte)0x01
,(byte)0xbe,(byte)0x01,(byte)0x60,(byte)0x01,(byte)0x00,(byte)0x2c,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00
,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x47,(byte)0x00,(byte)0x68,(byte)0x1b,(byte)0x45};
If you are taking from the image Via the Gallery intent. Open an input stream and then loop through it till you reach the End of the stream. In the loop read each byte and place in the array.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] b = new byte[0];
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
InputStream inputStream = getActivity().getApplicationContext().getContentResolver().openInputStream(data.getData());
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
b = baos.toByteArray();
baos.close();
Please see how to ask on stack overflow. Now come to your question, try this code to get a byte array from bitmap,
Bitmap bitmap = intent.getExtras().get("data");
ByteArrayOutputStream bos= new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
byte[] byteArray = bos.toByteArray();

Audio file to byte array Android not getting converted correctly

I am trying to convert audio file to the byte array, but it seems it is not getting converted correctly. I am recording sound using mic, then converting that file to byte array using file's path on the device.
The desired byte array should be like 0x12323
But it is coming like this string [B#14746f6
Below is the code to convert audio to byte array
file is the path of the file on the device. File type is amr
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream out = new ByteArrayOutputStream();
int read = 0;
byte[] buffer = new byte[1024];
while (read != -1) {
read = fis.read(buffer);
if (read != -1)
out.write(buffer,0,read);
}
out.close();
byte[] bytes = out.toByteArray();
Log.e("byte array" ,bytes.toString());
String path= ""; // Audio File path
InputStream is= new FileInputStream(path);
byte[] arr= readByte(is);
Log.e("byte: ",""+ Arrays.toString(arr));
I solved this issue after talking to api guy. I converted byte array to base64 string and passed it. Which resolved the issue.

How to convert video/audio file to byte array and vice versa in android.?

Am trying to convert audio/video to byte array and vice versa,
using below code am able converting audio/video files to byte array(see below code) but am fail to convert large file(more then 50MB files) is there any limit.?
how to convert byte array to audio/video file.? kindly help me out.
public byte[] convert(String path) throws IOException {
FileInputStream fis = new FileInputStream(path);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
for (int readNum; (readNum = fis.read(b)) != -1;) {
bos.write(b, 0, readNum);
}
byte[] bytes = bos.toByteArray();
return bytes;
}
Kindly help out to get the result
Thanks... with your help i got solution, to convert the bytes to file(audio/video), see below code.
private void convertBytesToFile(byte[] bytearray) {
try {
File outputFile = File.createTempFile("file", "mp3", getCacheDir());
outputFile.deleteOnExit();
FileOutputStream fileoutputstream = new FileOutputStream(tempMp3);
fileoutputstream.write(bytearray);
fileoutputstream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
**File outputFile = File.createTempFile("file", "mp3", getCacheDir());
outputFile contains the path, use that to play your audio/video file**
The ByteArrayOutputStream you create is kept in the memory. If you work with huge files, then your memory can limit your ability. This: java.lang.OutOfMemoryError: Java heap space question has a solution that might work for you, though it's probably not the best thing to keep 50MB in the memory.
To answer your other question, you can do the exact same thing:
public void convert(byte[] buf, String path) throws IOException {
ByteArrayInputStream bis = new ByteArrayInputStream(buf);
FileOutputStream fos = new FileOutputStream(path);
byte[] b = new byte[1024];
for (int readNum; (readNum = bis.read(b)) != -1;) {
fos.write(b, 0, readNum);
}
}

Android: Premature end of JPEG

I have to send to a server a few JPEG files taken form camera. Of course they are to big to do it simply by file stream. My code (for each file) looks as follow:
struct3.put("type", "image/jpeg");
f = new File(fileName);
FileInputStream fis = new FileInputStream(f);
BufferedInputStream bis = new BufferedInputStream(fis);
byte[] buffer = new byte[(int)f.length()];
bis.read(buffer);
fis.close();
struct3.put("bits", buffer);
After all I send a struct:
Object[] params3 = { bid, login, pass, struct3 };
Object response2 = client.send("my_function", params3);
When I send small files all is correct, but when files are bigger I received "Out of Memory Exception".
My solution of that is to compress JPEG files:
struct3.put("type", "image/jpeg");
final Options opts = new Options();
opts.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeFile(fileName, opts);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream);
byte[] byteArray = stream.toByteArray();
struct3.put("bits", byteArray);
Object[] params3 = { bid, login, pass, struct3 };
Object response2 = client.send("my_function", params3);
But that way produced an error ON THE SERVER SIDE:
"Premature End of JPEG file".
Is there any way to correct the JPEG file before sending it?
I know that JPEG shoud end with EOI ( 0xff, 0xfd).
How to check it and make a corrections?
There is no log cat report due to photos are uploaded to WordPress and only track is warning from gdlib. The warning contains: "Premature End of JPEG file"
Although I solved the problem. I've implemented procedure checking if byteArray ends with 0xFF,0xD9 and in case is not I add two bytes:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream);
byte[] byteArray = stream.toByteArray();
int byteToSendSize = byteArray.length;
boolean proper = ((byteArray[byteArray.length-2])==((byte)0xff))
&& ((byteArray[byteArray.length-1])==((byte)0xd9));
if(!proper)
byteToSendSize +=2;
byte[] byteToSend = new byte[byteToSendSize];
for (int i = 0; i < byteArray.length; i++) {
byteToSend[i] = byteArray[i];
}
if(!proper){
byteToSend[byteArray.length] = (byte) 0xff;
byteToSend[byteArray.length+1] = (byte) 0xd9;
}
struct3.put("bits", byteToSend);

How to encode JPEG / PNG to Base64 without decoding to bitmap, using less memory

There are good resource over converting JPEG to base64.
I am particularly interested in doing it without decoding to bimap, avoiding any memory inflation. I also understand that any file can be encoded into Base64 by converting it into byte array first.
So if we can directly create a byte array of JPEG / PNG file which is far less than the byte array of a decoded jpeg bitmap we can convert it to base64 using less memory footprint.
The closest answer I have come across is this https://stackoverflow.com/a/10160856/499752
public void getGalleryDetails(String path) throws FileNotFoundException {
InputStream inputStream = new FileInputStream(path);
byte[] bytes;
byte[] buffer = new byte[8192];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
try{
while((bytesRead = inputStream.read(buffer)) != -1){
output.write(buffer, 0, bytesRead);
}
}catch(IOException e){
e.printStackTrace();
}
bytes = output.toByteArray();
encodedImage = Base64.encodeToString(bytes, Base64.DEFAULT);
Log.i("ENCODED", encodedImage);
}
You could actually use this ... where you can provide the path of the file to be converted to Base64. Sorry for the late post ... Just say this post.

Categories

Resources